WordPress Page Builder – Beaver Builder - Version 2.2.0.6

Version Description

Download this release

Release Info

Developer pross
Plugin Icon 128x128 WordPress Page Builder – Beaver Builder
Version 2.2.0.6
Comparing to
See all releases

Code changes from version 2.1.7.2 to 2.2.0.6

Files changed (152) hide show
  1. changelog.txt +420 -3
  2. classes/class-fl-builder-admin-posts.php +2 -3
  3. classes/class-fl-builder-ajax-layout.php +51 -44
  4. classes/class-fl-builder-ajax.php +4 -3
  5. classes/class-fl-builder-art.php +798 -0
  6. classes/class-fl-builder-color.php +178 -24
  7. classes/class-fl-builder-css.php +530 -0
  8. classes/class-fl-builder-debug.php +7 -1
  9. classes/class-fl-builder-fonts.php +132 -57
  10. classes/class-fl-builder-loader.php +5 -1
  11. classes/class-fl-builder-model.php +136 -69
  12. classes/class-fl-builder-module.php +15 -2
  13. classes/class-fl-builder-settings-compat-column.php +46 -0
  14. classes/class-fl-builder-settings-compat-generic.php +20 -0
  15. classes/class-fl-builder-settings-compat-helper.php +164 -0
  16. classes/class-fl-builder-settings-compat-module.php +21 -0
  17. classes/class-fl-builder-settings-compat-row.php +24 -0
  18. classes/class-fl-builder-settings-compat.php +101 -0
  19. classes/class-fl-builder-settings-presets.php +104 -0
  20. classes/class-fl-builder-ui-content-panel.php +4 -0
  21. classes/class-fl-builder-ui-settings-forms.php +20 -0
  22. classes/class-fl-builder-wp-blocks-layout.php +12 -8
  23. classes/class-fl-builder.php +277 -76
  24. css/animations/bounce-down.css +68 -0
  25. css/animations/bounce-in.css +80 -0
  26. css/animations/bounce-left.css +68 -0
  27. css/animations/bounce-right.css +68 -0
  28. css/animations/bounce-up.css +68 -0
  29. css/animations/bounce.css +64 -0
  30. css/animations/fade-down.css +28 -0
  31. css/animations/fade-in.css +20 -0
  32. css/animations/fade-left.css +28 -0
  33. css/animations/fade-right.css +28 -0
  34. css/animations/fade-up.css +28 -0
  35. css/animations/fancy-flash.css +26 -0
  36. css/animations/fancy-jack-box.css +48 -0
  37. css/animations/fancy-jello.css +78 -0
  38. css/animations/fancy-light-speed.css +48 -0
  39. css/animations/fancy-pulse.css +32 -0
  40. css/animations/fancy-roll-in.css +28 -0
  41. css/animations/fancy-rubber-band.css +64 -0
  42. css/animations/fancy-shake.css +48 -0
  43. css/animations/fancy-swing.css +50 -0
  44. css/animations/fancy-tada.css +60 -0
  45. css/animations/fancy-wobble.css +64 -0
  46. css/animations/flip-horizontal.css +62 -0
  47. css/animations/flip-vertical.css +62 -0
  48. css/animations/rotate-down-left.css +36 -0
  49. css/animations/rotate-down-right.css +36 -0
  50. css/animations/rotate-in.css +36 -0
  51. css/animations/rotate-up-left.css +36 -0
  52. css/animations/rotate-up-right.css +36 -0
  53. css/animations/slide-in-down.css +26 -0
  54. css/animations/slide-in-left.css +26 -0
  55. css/animations/slide-in-right.css +26 -0
  56. css/animations/slide-in-up.css +26 -0
  57. css/animations/zoom-down.css +36 -0
  58. css/animations/zoom-in.css +24 -0
  59. css/animations/zoom-left.css +36 -0
  60. css/animations/zoom-right.css +36 -0
  61. css/animations/zoom-up.css +36 -0
  62. css/build/builder.bundle.css +11 -3
  63. css/build/builder.bundle.min.css +1 -1
  64. css/editor.css +6 -1
  65. css/fl-builder-layout.css +93 -107
  66. css/fl-builder-rtl.css +151 -33
  67. css/fl-builder-ui-skin-dark.css +130 -38
  68. css/fl-builder.css +1070 -247
  69. css/fl-builder.min.css +1 -1
  70. css/fl-color-picker.css +16 -7
  71. css/fl-lightbox.css +26 -13
  72. css/jquery.tiptip.css +1 -0
  73. fl-builder.php +1 -1
  74. fonts/fontawesome/css/all.min.css +2 -2
  75. fonts/fontawesome/webfonts/fa-brands-400.eot +0 -0
  76. fonts/fontawesome/webfonts/fa-brands-400.svg +2 -2
  77. fonts/fontawesome/webfonts/fa-brands-400.ttf +0 -0
  78. fonts/fontawesome/webfonts/fa-brands-400.woff +0 -0
  79. fonts/fontawesome/webfonts/fa-brands-400.woff2 +0 -0
  80. fonts/fontawesome/webfonts/fa-regular-400.eot +0 -0
  81. fonts/fontawesome/webfonts/fa-regular-400.svg +1 -1
  82. fonts/fontawesome/webfonts/fa-regular-400.ttf +0 -0
  83. fonts/fontawesome/webfonts/fa-regular-400.woff +0 -0
  84. fonts/fontawesome/webfonts/fa-regular-400.woff2 +0 -0
  85. fonts/fontawesome/webfonts/fa-solid-900.eot +0 -0
  86. fonts/fontawesome/webfonts/fa-solid-900.svg +5 -2
  87. fonts/fontawesome/webfonts/fa-solid-900.ttf +0 -0
  88. fonts/fontawesome/webfonts/fa-solid-900.woff +0 -0
  89. fonts/fontawesome/webfonts/fa-solid-900.woff2 +0 -0
  90. img/svg/select-arrow-down-alt2-light.svg +1 -1
  91. img/svg/select-arrow-down-alt2.svg +1 -1
  92. img/transp_bg.png +0 -0
  93. includes/admin-settings-welcome.php +7 -8
  94. includes/column-css.php +137 -76
  95. includes/column-settings.php +203 -188
  96. includes/column.php +3 -2
  97. includes/compatibility.php +24 -0
  98. includes/global-settings.php +80 -11
  99. includes/jquery.php +0 -8
  100. includes/module-settings.php +46 -43
  101. includes/module.php +4 -2
  102. includes/row-css.php +182 -112
  103. includes/row-settings.php +237 -145
  104. includes/row.php +4 -3
  105. includes/shape-layer.php +42 -0
  106. includes/shapes/circle.svg.php +1 -0
  107. includes/shapes/concave.svg.php +1 -0
  108. includes/shapes/dot-cluster.svg.php +28 -0
  109. includes/shapes/edge-slant.svg.php +1 -0
  110. includes/shapes/midpoint.svg.php +1 -0
  111. includes/shapes/rect.svg.php +1 -0
  112. includes/shapes/star.svg.php +1 -0
  113. includes/shapes/topography.svg.php +1 -0
  114. includes/shapes/triangle.svg.php +1 -0
  115. includes/shapes/triangles.svg.php +8 -0
  116. includes/shapes/wavy.svg.php +1 -0
  117. includes/ui-field-align.php +31 -0
  118. includes/ui-field-animation.php +143 -0
  119. includes/ui-field-border.php +162 -0
  120. includes/ui-field-button-group.php +31 -0
  121. includes/ui-field-color.php +7 -1
  122. includes/ui-field-date.php +7 -0
  123. includes/ui-field-dimension.php +106 -45
  124. includes/ui-field-font.php +30 -7
  125. includes/ui-field-form.php +3 -1
  126. includes/ui-field-gradient.php +112 -0
  127. includes/ui-field-icon.php +21 -2
  128. includes/ui-field-link.php +24 -0
  129. includes/ui-field-photo.php +21 -5
  130. includes/ui-field-preset.php +5 -0
  131. includes/ui-field-raw.php +1 -0
  132. includes/ui-field-select.php +16 -0
  133. includes/ui-field-shadow.php +82 -0
  134. includes/ui-field-shape-transform.php +105 -0
  135. includes/ui-field-typography.php +237 -0
  136. includes/ui-field-unit.php +52 -6
  137. includes/ui-field.php +8 -9
  138. includes/ui-js-config.php +3 -1
  139. includes/ui-js-templates.php +55 -18
  140. includes/ui-settings-form-row.php +8 -2
  141. includes/ui-settings-form.php +25 -9
  142. includes/updater-config.php +1 -1
  143. includes/updater/classes/class-fl-updater.php +2 -0
  144. includes/vendor/activecampaign/Connector.class.php +4 -6
  145. includes/vendor/aweber/oauth_application.php +5 -5
  146. includes/vendor/drip/Drip_API.class.php +18 -19
  147. includes/vendor/enormail/Enormail/Rest.php +37 -38
  148. includes/vendor/icontact/iContactApi.php +63 -64
  149. includes/vendor/mailerlite/FL_ML_Rest_Base.php +1 -2
  150. includes/vendor/mautic/MauticApi.php +0 -2
  151. includes/vendor/sendinblue/Mailin.php +1 -4
  152. js/build/builder.bundle.js +29 -56
changelog.txt CHANGED
@@ -1,3 +1,423 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <h4>2.1.7.2 - 01/02/2019</h4>
2
  <p><strong>Hot Fix</strong></p>
3
  <ul>
@@ -62,7 +482,6 @@
62
  <li>Fixed issue with layout shortcodes in Wocommerce description not rendering their assets.</li>
63
  </ul>
64
 
65
-
66
  <h4>2.1.6.3 - 10/30/2018</h4>
67
  <p><strong>Halloween Hot Fix</strong></p>
68
  <ul>
@@ -176,7 +595,6 @@
176
  <li>Fixed CORS issue on Pantheon hosting.</li>
177
  </ul>
178
 
179
-
180
  <h4>2.1.4.5 - 09/10/2018</h4>
181
  <p><strong>HotFix</strong></p>
182
  <ul>
@@ -229,7 +647,6 @@
229
  </ul>
230
  </li>
231
  </ul>
232
-
233
  <p><strong>Bug Fixes</strong></p>
234
  <ul>
235
  <li>Fixed issue with paginated category archives not correctly returning a 404 when there are no posts.</li>
1
+ <h4>2.2.0.6 - 01/24/2019</h4>
2
+ <p><strong>Hot Fix</strong></p>
3
+ <ul>
4
+ <li>Update Font Awesome to 5.6.3</li>
5
+ <li>Fixed PHP warnings in Heading module if non existent font is selected when upgrading to 2.2</li>
6
+ <li>Fixed theme white labeling not escaping apostrophes.</li>
7
+ <li>Fixed Themer Preview menu being incorrectly centered.</li>
8
+ <li>Fixed Content Slider button alignment.</li>
9
+ <li>Fixed margin/padding placeholders not showing as zero when the global settings are empty.</li>
10
+ <li>Fixed posts not being converted to the BB block when updating to 5.0</li>
11
+ <li>Fixed Builder link missing on new page when classic editor plugin is active.</li>
12
+ </ul>
13
+
14
+ <h4>2.2.0.5 - 01/14/2019</h4>
15
+ <p><strong>Bug Fixes</strong></p>
16
+ <ul>
17
+ <li>Fixed fatal error with Livemesh addons.</li>
18
+ <li>Fixed Google Fonts showing italic when set to default/normal.</li>
19
+ <li>Fixed Menu Module font sizes.</li>
20
+ </ul>
21
+
22
+ <h4>2.2.0.4 - 01/10/2019</h4>
23
+ <p><strong>Bug Fixes</strong></p>
24
+ <ul>
25
+ <li>Fixed fade left/right animations being reversed when updating to 2.2.</li>
26
+ <li>Fixed row width unit not applying to new rows when changed in the global settings.</li>
27
+ <li>Fixed Powerpack overlay setting not showing in 2.2.</li>
28
+ </ul>
29
+
30
+ <h4>2.2.0.3 - 01/08/2019</h4>
31
+ <p><strong>Enhancements</strong></p>
32
+ <ul>
33
+ <li>Added 12 new pre-built row templates for a total of 100.</li>
34
+ <li>Added typography settings for the caption in the photo module.</li>
35
+ <li>You can now select font weights for the default font.</li>
36
+ </ul>
37
+ <p><strong>Bug Fixes</strong></p>
38
+ <ul>
39
+ <li>Fixed various RTL issues with 2.2.</li>
40
+ <li>Fixed BB's admin UI for the Classic Editor plugin not showing in certain cases.</li>
41
+ <li>Fixed typography settings only falling back to sans-serif.</li>
42
+ <li>Fixed 'Default' showing twice for the default font weight.</li>
43
+ <li>Fixed responsive editing mode not always picking up the medium size as a fallback for the small size.</li>
44
+ </ul>
45
+
46
+ <h4>2.2.0.2 - 12/12/2018</h4>
47
+ <p><strong>Hot Fix</strong></p>
48
+ <ul>
49
+ <li>Update Font Awesome to 5.6.1</li>
50
+ <li>Fixed hidden editor when ACF is active on post/page edit screen.</li>
51
+ <li>Fixed PHP fatal error caused by SEO Press plugin when adding layouts/templates.</li>
52
+ <li>Fixed a JS error when using Cloudfront platform.</li>
53
+ <li>Fixed missing excerpts for posts module in WP 5.0</li>
54
+ </ul>
55
+
56
+ <h4>2.2.0.1 - 12/03/2018</h4>
57
+ <p><strong>Bug Fixes</strong></p>
58
+ <ul>
59
+ <li>Fixed internal server error with the video module when bcmath is not enabled in PHP.</li>
60
+ <li>Fixed JS error when using CloudFront.</li>
61
+ </ul>
62
+
63
+ <h4>2.2 - 11/27/2018</h4>
64
+ <p>Beaver Builder 2.2 is here! This is a major update and will be released as the official download on the <u>My Account page first</u>. Remote updates to all existing sites will begin in early January.</p>
65
+ <p><strong>Enhancements</strong></p>
66
+ <ul>
67
+ <li>Added settings for selecting either div, article or li containers for posts in the posts module.</li>
68
+ <li>Renamed "Header" prebuilt rows to "Heroes."</li>
69
+ </ul>
70
+ <p><strong>Bug Fixes</strong></p>
71
+ <ul>
72
+ <li>Fixed duplicate prebuilt rows showing in the content panel.</li>
73
+ <li>Fixed not being able to select 0% alpha or 100% black in the color picker.</li>
74
+ <li>Fixed settings panels rendering off screen in certain cases.</li>
75
+ <li>Fixed featured images not respecting the posts module border radius setting.</li>
76
+ <li>Fixed posts module box shadows being cut off.</li>
77
+ <li>Fixed photo module responsive alignment not working correctly.</li>
78
+ <li>Fixed low contrast text in the module search input while using dark mode.</li>
79
+ <li>Fixed columns disappearing when clicking the move option without moving the column.</li>
80
+ <li>Fixed row and column background overlays not respecting the border radius settings.</li>
81
+ </ul>
82
+
83
+ <h4>2.2-beta.3 - 11/13/2018</h4>
84
+ <p><strong>Bug Fixes</strong></p>
85
+ <ul>
86
+ <li>Fixed vertically aligned columns not working on small devices.</li>
87
+ <li>Fixed equal height columns not working while the builder is active when device size logic has been applied to the column.</li>
88
+ <li>Fixed responsive preview not correctly rendering image widths with an empty setting value.</li>
89
+ <li>Fixed menu module link spacing when updating to 2.2.</li>
90
+ <li>Fixed menu module background color when updating to 2.2.</li>
91
+ <li>Fixed icons with backgrounds having wrong line height.</li>
92
+ <li>Fixed settings menus cut off in responsive editing mode.</li>
93
+ </ul>
94
+
95
+ <h4>2.2-beta.2 - 11/09/2018</h4>
96
+ <p><strong>Enhancements</strong></p>
97
+ <ul>
98
+ <li>Added labels to the first row of the border field's general section.</li>
99
+ <li>Added structured data settings to the video module.</li>
100
+ <li>Added a remove button for row background videos.</li>
101
+ <li>Added default option for font weights so strong tags still work when a family is selected.</li>
102
+ <li>Added the ability to collapse settings sections by clicking the entire section header.</li>
103
+ </ul>
104
+ <p><strong>Bug Fixes</strong></p>
105
+ <ul>
106
+ <li>Fixed italic Google fonts not working correctly.</li>
107
+ <li>Fixed CSS errors with empty icon group styles.</li>
108
+ <li>Fixed CSS/JS for hidden nodes still rendering on the page.</li>
109
+ <li>Fixed responsive photo fields not working correctly.</li>
110
+ <li>Fixed repeater photo fields not working correctly.</li>
111
+ <li>Fixed menu module font size defaulting to zero.</li>
112
+ <li>Fixed responsive preview not working when parsing a stylesheet fails with a CORS error.</li>
113
+ </ul>
114
+
115
+ <h4>2.2-beta.1 - 10/24/2018</h4>
116
+ <p><strong>Enhancements</strong></p>
117
+ <ul>
118
+ <li>Added prebuilt rows to the content panel.</li>
119
+ </ul>
120
+
121
+ <h4>2.2-alpha.2 - 10/04/2018</h4>
122
+ <p><strong>Enhancements</strong></p>
123
+ <ul>
124
+ <li>Hardened UI styles to prevent style creep from themes.</li>
125
+ <li>Added Themer custom field connections to all color fields.</li>
126
+ </ul>
127
+ <p><strong>Bug Fixes</strong></p>
128
+ <ul>
129
+ <li>Fixed drag and drop breaking when dragging while another element hasn't finished refreshing after save.</li>
130
+ <li>Fixed some changes not saving when done quickly on slow connections.</li>
131
+ <li>Fixed the position of duplicated elements being incorrect when moving the original element during the duplicate process.</li>
132
+ <li>Fixed modules disappearing if moved and the the old column is deleted while the move is saving.</li>
133
+ <li>Fixed dragging into rows that are being saved. That causes things to disappear until the page is refreshed.</li>
134
+ <li>Fixed columns being highlighted as empty after dropping a module to create a new column.</li>
135
+ <li>Fixed pasting into inline editors retaining the copied formatting.</li>
136
+ </ul>
137
+
138
+ <h4>2.2-alpha.1 - 09/05/2018</h4>
139
+ <p><strong>Bug Fixes</strong></p>
140
+ <ul>
141
+ <li>Fixed row shape issues and refined internal logic.</li>
142
+ <li>Fixed black borders in the video module when aspect ratio is not maintained.</li>
143
+ <li>Fixed Google map markers not displaying properly in accordions and tabs.</li>
144
+ </ul>
145
+
146
+ <h4>2.2-dev.9 - 08/28/2018</h4>
147
+ <p><strong>Button Module</strong></p>
148
+ <ul>
149
+ <li>Added responsive border settings.</li>
150
+ <li>Added live preview to button background colors.</li>
151
+ <li>Converted font size setting to a responsive typography setting.</li>
152
+ <li>Converted padding setting to a responsive dimension setting.</li>
153
+ <li>Removed transparent button style. That is now done with alpha backgrounds and border settings.</li>
154
+ <li>Reorganized style settings to work with the new settings.</li>
155
+ <li>Updated all modules that use buttons with new settings.</li>
156
+ </ul>
157
+ <p><strong>Callout Module</strong></p>
158
+ <ul>
159
+ <li>Added background color, border, and padding settings.</li>
160
+ <li>Added link color and typography settings.</li>
161
+ </ul>
162
+ <p><strong>Fixes</strong></p>
163
+ <ul>
164
+ <li>Fixed dark UI affecting buttons in the WordPress media library.</li>
165
+ </ul>
166
+
167
+ <h4>2.2-dev.8 - 08/21/2018</h4>
168
+ <p><strong>Fixes</strong></p>
169
+ <ul>
170
+ <li>Fixed dimension and unit fields not previewing correctly in compound settings (typography, border, etc).</li>
171
+ <li>Fixed JS error when dropping in a new module to create a new column.</li>
172
+ </ul>
173
+
174
+ <h4>2.2-dev.7 - 08/21/2018</h4>
175
+ <p><strong>General Enhancements</strong></p>
176
+ <ul>
177
+ <li>Added duration input for animation settings.</li>
178
+ </ul>
179
+ <p><strong>Callout Module</strong></p>
180
+ <ul>
181
+ <li>Added responsive icon size setting with custom units.</li>
182
+ </ul>
183
+ <p><strong>Icon Module</strong></p>
184
+ <ul>
185
+ <li>Added responsive icon size setting with custom units.</li>
186
+ </ul>
187
+ <p><strong>Icon Group Module</strong></p>
188
+ <ul>
189
+ <li>Added responsive icon size setting with custom units.</li>
190
+ </ul>
191
+ <p><strong>Text Editor Module</strong></p>
192
+ <ul>
193
+ <li>Fixed color setting not overriding colors set by the row.</li>
194
+ </ul>
195
+ <p><strong>API</strong></p>
196
+ <ul>
197
+ <li>Added API for date settings using the HTML date input.</li>
198
+ </ul>
199
+ <p><strong>Fixes</strong></p>
200
+ <ul>
201
+ <li>Fixed layout going off the page when editing a Themer part in responsive editing mode.</li>
202
+ </ul>
203
+
204
+ <h4>2.2-dev.6 - 08/10/2018</h4>
205
+ <p><strong>Fixes</strong></p>
206
+ <ul>
207
+ <li>Fixed duplicating rows and modules leaving an extra copy when the duplicate completes.</li>
208
+ <li>Fixed general loading issues when working in the builder.</li>
209
+ </ul>
210
+
211
+ <h4>2.2-dev.5 - 08/08/2018</h4>
212
+ <p><strong>General Enhancements</strong></p>
213
+ <ul>
214
+ <li>Added a publish layout item to the tools menu for publishing and remaining in the builder.</li>
215
+ <li>Finished work for alpha pickers, live preview, responsive settings, etc. for remaining modules.</li>
216
+ <li>Added advanced setting for changing the HTML wrapper element of rows, columns, and modules.</li>
217
+ <li>Row, column, and module animations are now enabled for mobile devices.</li>
218
+ <li>Moved column settings to the first item in the column dropdown menu.</li>
219
+ <li>Added "None" option for the background overlay setting.</li>
220
+ <li>Streamline the overall visual appearance, specifically of settings forms.</li>
221
+ <li>Allow pinned settings panels to resize down to 320px (formally 380px min) and widen to 600px.</li>
222
+ <li>Rich text and code editor fields now display edge-to-edge on slim settings panels.</li>
223
+ <li>Field connection icons now appear the top of the field for rich text and code editors.</li>
224
+ <li>Settings sections can now be collapsed. Developers can specify if they'd like a section in their custom module to be collapsed by default.</li>
225
+ </ul>
226
+ <p><strong>General Fixes</strong></p>
227
+ <ul>
228
+ <li>Fixed font weights not loading for the selected font in typography settings.</li>
229
+ <li>Fixed border settings not cascading down to smaller device sizes.</li>
230
+ <li>Fixed target and nofollow inputs not showing for link fields with a field connection.</li>
231
+ <li>Fixed PHP warning leaking into row CSS preventing backgrounds from showing.</li>
232
+ <li>Fixed not being able to set a minimum height on columns with no siblings.</li>
233
+ <li>Fixed row and column animations not working because of the waypoint script not being enqueued.</li>
234
+ <li>Fixed color pickers showing the wrong color after saving settings and then editing the color again.</li>
235
+ <li>Fixed row actions in responsive editing mode not showing up and causing a horizontal scrollbar.</li>
236
+ <li>Fixed row min-height not resetting when switching back to default.</li>
237
+ <li>Fixed column dropdown being cut off in responsive editing mode.</li>
238
+ <li>Fixed not being able to resize columns that are too small.</li>
239
+ </ul>
240
+ <p><strong>Shape Layers</strong></p>
241
+ <ul>
242
+ <li>Shape layer controls (formerly Edges tab) have been moved into the style tab.</li>
243
+ <li>Shapes can now be aligned vertically as well as horizontally.</li>
244
+ <li>4 new shapes have been added. More to come.</li>
245
+ </ul>
246
+ <p><strong>Gallery Module</strong></p>
247
+ <ul>
248
+ <li>Added photo border settings to the new style tab.</li>
249
+ <li>Moved photo spacing setting to the new style tab.</li>
250
+ </ul>
251
+ <p><strong>Icon Group Module</strong></p>
252
+ <ul>
253
+ <li>Fixed icon colors only applying to the first icon.</li>
254
+ </ul>
255
+ <p><strong>Menu Module</strong></p>
256
+ <ul>
257
+ <li>Added mobile menu layout options for off-canvas / flyout menus.</li>
258
+ <li>Converted font, text size, and text transform settings to a responsive typography setting.</li>
259
+ <li>The first submenu is now opened when editing a menu to preview changes.</li>
260
+ <li>Added submenu link spacing setting.</li>
261
+ <li>Converted submenu spacing setting to a dimension field.</li>
262
+ </ul>
263
+ <p><strong>Number Counter Module</strong></p>
264
+ <ul>
265
+ <li>Converted number size setting to a responsive setting with custom units.</li>
266
+ </ul>
267
+ <p><strong>Posts Module</strong></p>
268
+ <ul>
269
+ <li>Converted border settings to a responsive border setting.</li>
270
+ <li>Converted font size settings to responsive typography settings.</li>
271
+ </ul>
272
+ <p><strong>Testimonials Module</strong></p>
273
+ <ul>
274
+ <li>Added new style tab with text color and typography settings.</li>
275
+ </ul>
276
+ <p><strong>Text Editor Module</strong></p>
277
+ <ul>
278
+ <li>Fixed style settings not overriding those set by the theme for headings in the Customizer.</li>
279
+ </ul>
280
+
281
+ <h4>2.2-dev.4 - 6/28/2018</h4>
282
+ <p><strong>Enhancements</strong></p>
283
+ <ul>
284
+ <li>Added the ability to set row edges and shapes. More to come!</li>
285
+ <li>Added the option to set background overlay gradients on rows and columns.</li>
286
+ </ul>
287
+ <p><strong>Tweaks</strong></p>
288
+ <ul>
289
+ <li>Refined responsive editing logic to make it even more accurate.</li>
290
+ <li>Added labels to the font family and weight selects in the typography field.</li>
291
+ </ul>
292
+ <p><strong>Fixes</strong></p>
293
+ <ul>
294
+ <li>Fixed multiple issues with animation settings not working correctly.</li>
295
+ <li>Fixed PHP warning caused by the typography field on PHP 5.6 and below.</li>
296
+ <li>Fixed border style and width settings not previewing and rendering correctly.</li>
297
+ <li>Fixed Callout module overall alignment setting not applying to buttons.</li>
298
+ <li>Fixed not being able to edit RGBA values in color picker fields.</li>
299
+ </ul>
300
+ <p><strong>Menu Module</strong></p>
301
+ <ul>
302
+ <li>Converted link spacing fields to a single dimension field.</li>
303
+ </ul>
304
+
305
+ <h4>2.2-dev.3 - 6/20/2018</h4>
306
+ <p><strong>General</strong></p>
307
+ <ul>
308
+ <li>Added unit select to margin and padding settings.</li>
309
+ <li>Added unit select to the row width setting.</li>
310
+ <li>Added minimum height setting with unit select and responsive editing to rows and columns.</li>
311
+ <li>Added border radius setting with responsive editing to rows and columns.</li>
312
+ <li>Added box shadow setting to rows and columns.</li>
313
+ <li>Added unit select to all margin and padding settings in the global settings.</li>
314
+ <li>Added global settings for column margins and padding.</li>
315
+ <li>Added unit selects to various module unit settings.</li>
316
+ <li>Added responsive editing to row and column background photos.</li>
317
+ <li>Added responsive editing to the column width setting and removed old responsive column settings in the advanced tab.</li>
318
+ <li>Added background gradient setting for rows and columns.</li>
319
+ <li>Added entrance animations for rows and columns.</li>
320
+ <li>Added more entrance animations from animate.css.</li>
321
+ <li>Added live preview for editing entrance animations.</li>
322
+ <li>Added alpha slider to all color picker settings and removed old opacity settings.</li>
323
+ <li>Added live preview to more module settings so changes don’t require a refresh.</li>
324
+ <li>Added popup slider control to various unit and dimension settings.</li>
325
+ <li>Added the ability to link values for all dimension settings.</li>
326
+ <li>Added new align setting to various modules in place of the old align selects.</li>
327
+ <li>Added dev feedback button within the builder UI. This is ONLY shown for pre-release versions.</li>
328
+ </ul>
329
+ <p><strong>Responsive Editing Mode</strong></p>
330
+ <ul>
331
+ <li>You can now stay in responsive editing mode after closing settings.</li>
332
+ <li>Added toggle and exit buttons within responsive editing mode.</li>
333
+ <li>Added menu item for switching to responsive editing mode.</li>
334
+ <li>Added keyboard shortcut for switching to responsive editing mode.</li>
335
+ </ul>
336
+ <p><strong>API</strong></p>
337
+ <ul>
338
+ <li>Added API for enabling a unit select (%, em, vh, etc.) on dimension and unit settings.</li>
339
+ <li>Added API for enabling a popup slider input on unit and dimension settings.</li>
340
+ <li>Added API for responsive editing to photo and select settings.</li>
341
+ <li>Added API for making backwards compatible changes to settings.</li>
342
+ <li>Added API for making live preview rules !important.</li>
343
+ <li>Added API for align, animation, border, button group, gradient, shadow, and typography settings.</li>
344
+ <li>Added API for toggling other settings when icon or photo settings are set.</li>
345
+ <li>Added API for adding target and nofollow checkboxes to the link field.</li>
346
+ </ul>
347
+ <p><strong>Tweaks</strong></p>
348
+ <ul>
349
+ <li>FontAwesome is now loaded locally instead of from the CDN.</li>
350
+ </ul>
351
+ <p><strong>Accordion Module</strong></p>
352
+ <ul>
353
+ <li>Added border, color, icon, padding, and typography settings.</li>
354
+ <li>The first item is now open when editing to preview content style changes.</li>
355
+ <li>Moved collapse inactive and expand first item settings to the items tab.</li>
356
+ </ul>
357
+ <p><strong>Button Module</strong></p>
358
+ <ul>
359
+ <li>Added unit select to custom width field.</li>
360
+ <li>Added responsive editing to the alignment setting.</li>
361
+ <li>Icon position and visibility settings only show when an icon is set.</li>
362
+ </ul>
363
+ <p><strong>Call to Action Module</strong></p>
364
+ <ul>
365
+ <li>Converted spacing setting to a responsive padding setting with custom units.</li>
366
+ <li>Added border, text color, and typography settings.</li>
367
+ <li>Moved heading tag setting to the general tab.</li>
368
+ </ul>
369
+ <p><strong>Callout Module</strong></p>
370
+ <ul>
371
+ <li>Added text color and typography settings.</li>
372
+ <li>Added photo width, align, and border settings.</li>
373
+ <li>Moved heading tag setting to the general tab.</li>
374
+ </ul>
375
+ <p><strong>Heading Module</strong></p>
376
+ <ul>
377
+ <li>Converted style settings to the new responsive typography setting.</li>
378
+ <li>Moved HTML tag setting to the general tab.</li>
379
+ <li>Change HTML tag setting default to H2.</li>
380
+ </ul>
381
+ <p><strong>Icon Module</strong></p>
382
+ <ul>
383
+ <li>Added responsive editing to the alignment setting.</li>
384
+ <li>Added color, typography, and spacing settings for the icon text.</li>
385
+ </ul>
386
+ <p><strong>Map Module</strong></p>
387
+ <ul>
388
+ <li>Added custom units and responsive editing to the height setting.</li>
389
+ <li>Added border settings with responsive editing.</li>
390
+ </ul>
391
+ <p><strong>Menu Module</strong></p>
392
+ <ul>
393
+ <li>Added responsive editing to the alignment setting.</li>
394
+ <li>Regrouped style settings for consistency with other modules.</li>
395
+ </ul>
396
+ <p><strong>Photo Module</strong></p>
397
+ <ul>
398
+ <li>Moved alignment and crop settings to the new style tab.</li>
399
+ <li>Added responsive editing to the alignment setting.</li>
400
+ <li>Added new width setting with unit select and responsive editing.</li>
401
+ <li>Added border type, color, width, and radius settings.</li>
402
+ <li>Added box shadow setting.</li>
403
+ </ul>
404
+ <p><strong>Separator Module</strong></p>
405
+ <ul>
406
+ <li>Removed the width select in favor of a single width setting.</li>
407
+ </ul>
408
+ <p><strong>Social Buttons Module</strong></p>
409
+ <ul>
410
+ <li>Fixed spacing issues.</li>
411
+ </ul>
412
+ <p><strong>Tabs Module</strong></p>
413
+ <ul>
414
+ <li>Added border, color, padding, and typography settings.</li>
415
+ </ul>
416
+ <p><strong>Text Editor Module</strong></p>
417
+ <ul>
418
+ <li>Added new style tab with text color and typography settings.</li>
419
+ </ul>
420
+
421
  <h4>2.1.7.2 - 01/02/2019</h4>
422
  <p><strong>Hot Fix</strong></p>
423
  <ul>
482
  <li>Fixed issue with layout shortcodes in Wocommerce description not rendering their assets.</li>
483
  </ul>
484
 
 
485
  <h4>2.1.6.3 - 10/30/2018</h4>
486
  <p><strong>Halloween Hot Fix</strong></p>
487
  <ul>
595
  <li>Fixed CORS issue on Pantheon hosting.</li>
596
  </ul>
597
 
 
598
  <h4>2.1.4.5 - 09/10/2018</h4>
599
  <p><strong>HotFix</strong></p>
600
  <ul>
647
  </ul>
648
  </li>
649
  </ul>
 
650
  <p><strong>Bug Fixes</strong></p>
651
  <ul>
652
  <li>Fixed issue with paginated category archives not correctly returning a 404 when there are no posts.</li>
classes/class-fl-builder-admin-posts.php CHANGED
@@ -56,7 +56,7 @@ final class FLBuilderAdminPosts {
56
  * @return bool
57
  */
58
  static public function post_type_supports_block_editor( $post_type ) {
59
- if ( ! function_exists( 'use_block_editor_for_post_type' ) ) {
60
  return false;
61
  }
62
 
@@ -78,9 +78,8 @@ final class FLBuilderAdminPosts {
78
  $render_ui = apply_filters( 'fl_builder_render_admin_edit_ui', true );
79
  $post_type = self::get_post_type();
80
  $post_types = FLBuilderModel::get_post_types();
81
- $supports_blocks = self::post_type_supports_block_editor( $post_type );
82
 
83
- if ( $render_ui && in_array( $post_type, $post_types ) && ! $supports_blocks ) {
84
  add_filter( 'admin_body_class', __CLASS__ . '::body_class', 99 );
85
  add_action( 'admin_enqueue_scripts', __CLASS__ . '::styles_scripts' );
86
  add_action( 'edit_form_after_title', __CLASS__ . '::render' );
56
  * @return bool
57
  */
58
  static public function post_type_supports_block_editor( $post_type ) {
59
+ if ( ! function_exists( 'use_block_editor_for_post_type' ) || isset( $_GET['classic-editor'] ) ) {
60
  return false;
61
  }
62
 
78
  $render_ui = apply_filters( 'fl_builder_render_admin_edit_ui', true );
79
  $post_type = self::get_post_type();
80
  $post_types = FLBuilderModel::get_post_types();
 
81
 
82
+ if ( $render_ui && in_array( $post_type, $post_types ) ) {
83
  add_filter( 'admin_body_class', __CLASS__ . '::body_class', 99 );
84
  add_action( 'admin_enqueue_scripts', __CLASS__ . '::styles_scripts' );
85
  add_action( 'edit_form_after_title', __CLASS__ . '::render' );
classes/class-fl-builder-ajax-layout.php CHANGED
@@ -71,48 +71,50 @@ final class FLBuilderAJAXLayout {
71
  * @since 1.7
72
  * @param string $cols The type of column layout to use.
73
  * @param int $position The position of the new row in the layout.
74
- * @param string $template_id The ID of a row template to render.
75
- * @param string $template_type The type of template. Either "user" or "core".
76
  * @return array
77
  */
78
- static public function render_new_row( $cols = '1-col', $position = false, $template_id = null, $template_type = 'user' ) {
79
- // Add a row template?
80
- if ( null !== $template_id ) {
81
-
82
- if ( 'core' == $template_type ) {
83
- $template = FLBuilderModel::get_template( $template_id, 'row' );
84
- $row = FLBuilderModel::apply_node_template( $template_id, null, $position, $template );
85
- } else {
86
- $row = FLBuilderModel::apply_node_template( $template_id, null, $position );
87
- }
88
-
89
- // Return the response.
90
- return array(
91
- 'layout' => self::render( $row->node ),
92
- 'config' => FLBuilderUISettingsForms::get_node_js_config(),
93
- );
94
- } else {
95
-
96
- // Add the row.
97
- $row = FLBuilderModel::add_row( $cols, $position );
98
-
99
- do_action( 'fl_builder_before_render_ajax_layout_html' );
100
 
101
- // Render the row.
102
- ob_start();
103
- FLBuilder::render_row( $row );
104
- $html = ob_get_clean();
 
 
105
 
106
- do_action( 'fl_builder_after_render_ajax_layout_html' );
 
 
 
 
 
 
 
107
 
108
- // Return the response.
109
- return array(
110
- 'partial' => true,
111
- 'nodeType' => $row->type,
112
- 'html' => $html,
113
- 'js' => 'FLBuilder._renderLayoutComplete();',
114
- );
 
 
 
 
 
 
 
 
115
  }
 
 
 
 
 
116
  }
117
 
118
  /**
@@ -137,19 +139,18 @@ final class FLBuilderAJAXLayout {
137
  * @param string $node_id The node ID of a row to add the new group to.
138
  * @param string $cols The type of column layout to use.
139
  * @param int $position The position of the new column group in the row.
 
140
  * @return array
141
  */
142
- static public function render_new_column_group( $node_id, $cols = '1-col', $position = false ) {
143
  // Add the group.
144
- $group = FLBuilderModel::add_col_group( $node_id, $cols, $position );
145
-
146
- do_action( 'fl_builder_before_render_ajax_layout_html' );
147
 
148
  // Render the group.
 
149
  ob_start();
150
  FLBuilder::render_column_group( $group );
151
  $html = ob_get_clean();
152
-
153
  do_action( 'fl_builder_after_render_ajax_layout_html' );
154
 
155
  // Return the response.
@@ -169,11 +170,12 @@ final class FLBuilderAJAXLayout {
169
  * @param string $insert Either before or after.
170
  * @param string $type The type of column(s) to insert.
171
  * @param boolean $nested Whether these columns are nested or not.
 
172
  * @return array
173
  */
174
- static public function render_new_columns( $node_id, $insert, $type, $nested ) {
175
  // Add the column(s).
176
- $group = FLBuilderModel::add_cols( $node_id, $insert, $type, $nested );
177
 
178
  // Return the response.
179
  return self::render( $group->node );
@@ -330,7 +332,8 @@ final class FLBuilderAJAXLayout {
330
 
331
  // Get the node.
332
  $node_id = $post_data['node_id'];
333
- $node = FLBuilderModel::get_node( $post_data['node_id'] );
 
334
 
335
  // Check a module for partial refresh.
336
  if ( $node && 'module' == $node->type ) {
@@ -512,6 +515,10 @@ final class FLBuilderAJAXLayout {
512
  $assets['js'] .= FLBuilder::render_row_modules_js( $partial_refresh_data['node'] );
513
  break;
514
 
 
 
 
 
515
  case 'column':
516
  $assets['js'] = FLBuilder::render_column_modules_js( $partial_refresh_data['node'] );
517
  break;
71
  * @since 1.7
72
  * @param string $cols The type of column layout to use.
73
  * @param int $position The position of the new row in the layout.
74
+ * @param string $module Optional. The node ID of an existing module to move to this row.
 
75
  * @return array
76
  */
77
+ static public function render_new_row( $cols = '1-col', $position = false, $module = null ) {
78
+ // Add the row.
79
+ $row = FLBuilderModel::add_row( $cols, $position, $module );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
80
 
81
+ // Render the row.
82
+ do_action( 'fl_builder_before_render_ajax_layout_html' );
83
+ ob_start();
84
+ FLBuilder::render_row( $row );
85
+ $html = ob_get_clean();
86
+ do_action( 'fl_builder_after_render_ajax_layout_html' );
87
 
88
+ // Return the response.
89
+ return array(
90
+ 'partial' => true,
91
+ 'nodeType' => $row->type,
92
+ 'html' => $html,
93
+ 'js' => 'FLBuilder._renderLayoutComplete();',
94
+ );
95
+ }
96
 
97
+ /**
98
+ * Renders the layout data for a new row template.
99
+ *
100
+ * @since 2.2
101
+ * @param int $position The position of the new row in the layout.
102
+ * @param string $template_id The ID of a row template to render.
103
+ * @param string $template_type The type of template. Either "user" or "core".
104
+ * @return array
105
+ */
106
+ static public function render_new_row_template( $position, $template_id, $template_type = 'user' ) {
107
+ if ( 'core' == $template_type ) {
108
+ $template = FLBuilderModel::get_template( $template_id, 'row' );
109
+ $row = FLBuilderModel::apply_node_template( $template_id, null, $position, $template );
110
+ } else {
111
+ $row = FLBuilderModel::apply_node_template( $template_id, null, $position );
112
  }
113
+
114
+ return array(
115
+ 'layout' => self::render( $row->node ),
116
+ 'config' => FLBuilderUISettingsForms::get_node_js_config(),
117
+ );
118
  }
119
 
120
  /**
139
  * @param string $node_id The node ID of a row to add the new group to.
140
  * @param string $cols The type of column layout to use.
141
  * @param int $position The position of the new column group in the row.
142
+ * @param string $module Optional. The node ID of an existing module to move to this group.
143
  * @return array
144
  */
145
+ static public function render_new_column_group( $node_id, $cols = '1-col', $position = false, $module = null ) {
146
  // Add the group.
147
+ $group = FLBuilderModel::add_col_group( $node_id, $cols, $position, $module );
 
 
148
 
149
  // Render the group.
150
+ do_action( 'fl_builder_before_render_ajax_layout_html' );
151
  ob_start();
152
  FLBuilder::render_column_group( $group );
153
  $html = ob_get_clean();
 
154
  do_action( 'fl_builder_after_render_ajax_layout_html' );
155
 
156
  // Return the response.
170
  * @param string $insert Either before or after.
171
  * @param string $type The type of column(s) to insert.
172
  * @param boolean $nested Whether these columns are nested or not.
173
+ * @param string $module Optional. The node ID of an existing module to move to this group.
174
  * @return array
175
  */
176
+ static public function render_new_columns( $node_id, $insert, $type, $nested, $module = null ) {
177
  // Add the column(s).
178
+ $group = FLBuilderModel::add_cols( $node_id, $insert, $type, $nested, $module );
179
 
180
  // Return the response.
181
  return self::render( $group->node );
332
 
333
  // Get the node.
334
  $node_id = $post_data['node_id'];
335
+ $node = FLBuilderModel::get_node( $post_data['node_id'] );
336
+ $node_type = null;
337
 
338
  // Check a module for partial refresh.
339
  if ( $node && 'module' == $node->type ) {
515
  $assets['js'] .= FLBuilder::render_row_modules_js( $partial_refresh_data['node'] );
516
  break;
517
 
518
+ case 'column-group':
519
+ $assets['js'] = FLBuilder::render_column_group_modules_js( $partial_refresh_data['node'] );
520
+ break;
521
+
522
  case 'column':
523
  $assets['js'] = FLBuilder::render_column_modules_js( $partial_refresh_data['node'] );
524
  break;
classes/class-fl-builder-ajax.php CHANGED
@@ -109,10 +109,11 @@ final class FLBuilderAJAX {
109
  // FLBuilderAJAXLayout
110
  self::add_action( 'render_layout', 'FLBuilderAJAXLayout::render' );
111
  self::add_action( 'render_node', 'FLBuilderAJAXLayout::render', array( 'node_id' ) );
112
- self::add_action( 'render_new_row', 'FLBuilderAJAXLayout::render_new_row', array( 'cols', 'position', 'template_id', 'template_type' ) );
 
113
  self::add_action( 'copy_row', 'FLBuilderAJAXLayout::copy_row', array( 'node_id', 'settings', 'settings_id' ) );
114
- self::add_action( 'render_new_column_group', 'FLBuilderAJAXLayout::render_new_column_group', array( 'node_id', 'cols', 'position' ) );
115
- self::add_action( 'render_new_columns', 'FLBuilderAJAXLayout::render_new_columns', array( 'node_id', 'insert', 'type', 'nested' ) );
116
  self::add_action( 'render_new_col_template', 'FLBuilderAJAXLayout::render_new_col_template', array( 'template_id', 'parent_id', 'position', 'template_type' ) );
117
  self::add_action( 'copy_col', 'FLBuilderAJAXLayout::copy_col', array( 'node_id', 'settings', 'settings_id' ) );
118
  self::add_action( 'render_new_module', 'FLBuilderAJAXLayout::render_new_module', array( 'parent_id', 'position', 'type', 'alias', 'template_id', 'template_type' ) );
109
  // FLBuilderAJAXLayout
110
  self::add_action( 'render_layout', 'FLBuilderAJAXLayout::render' );
111
  self::add_action( 'render_node', 'FLBuilderAJAXLayout::render', array( 'node_id' ) );
112
+ self::add_action( 'render_new_row', 'FLBuilderAJAXLayout::render_new_row', array( 'cols', 'position', 'module' ) );
113
+ self::add_action( 'render_new_row_template', 'FLBuilderAJAXLayout::render_new_row_template', array( 'position', 'template_id', 'template_type' ) );
114
  self::add_action( 'copy_row', 'FLBuilderAJAXLayout::copy_row', array( 'node_id', 'settings', 'settings_id' ) );
115
+ self::add_action( 'render_new_column_group', 'FLBuilderAJAXLayout::render_new_column_group', array( 'node_id', 'cols', 'position', 'module' ) );
116
+ self::add_action( 'render_new_columns', 'FLBuilderAJAXLayout::render_new_columns', array( 'node_id', 'insert', 'type', 'nested', 'module' ) );
117
  self::add_action( 'render_new_col_template', 'FLBuilderAJAXLayout::render_new_col_template', array( 'template_id', 'parent_id', 'position', 'template_type' ) );
118
  self::add_action( 'copy_col', 'FLBuilderAJAXLayout::copy_col', array( 'node_id', 'settings', 'settings_id' ) );
119
  self::add_action( 'render_new_module', 'FLBuilderAJAXLayout::render_new_module', array( 'parent_id', 'position', 'type', 'alias', 'template_id', 'template_type' ) );
classes/class-fl-builder-art.php ADDED
@@ -0,0 +1,798 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Handle SVG Artwork for the system.
4
+ */
5
+ class FLBuilderArt {
6
+
7
+ /**
8
+ * All registered shapes
9
+ */
10
+ static private $artwork = array();
11
+
12
+ /**
13
+ * Which node types support layers
14
+ */
15
+ static private $supported_node_types = array( 'row' );
16
+
17
+ /**
18
+ * Initialize the artwork handling
19
+ *
20
+ * @return void
21
+ */
22
+ static public function init() {
23
+
24
+ // Render layer(s) output into node output
25
+ add_action( 'fl_builder_render_node_layers', 'FLBuilderArt::render_node_layers' );
26
+
27
+ // Setup Shapes and Preset definitions
28
+ add_action( 'fl_register_presets', 'FLBuilderArt::register_shapes' );
29
+
30
+ // Add special <option> sets for js output
31
+ add_filter( 'fl_builder_shared_option_sets', 'FLBuilderArt::filter_shared_option_sets' );
32
+ }
33
+
34
+ /**
35
+ * Register the system art and presets. Called by the fl_register_presets action (see FLBuilderSettingsPresets )
36
+ *
37
+ * @return void
38
+ */
39
+ static public function register_shapes() {
40
+
41
+ $art_dir = FL_BUILDER_DIR . 'includes/shapes/';
42
+
43
+ self::register_shape(array(
44
+ 'label' => __( 'Slanted Edge', 'fl-builder' ),
45
+ 'name' => 'edge-slant',
46
+ 'width' => 422,
47
+ 'height' => 33.98,
48
+ 'render' => $art_dir . 'edge-slant.svg.php',
49
+ ));
50
+
51
+ self::register_shape(array(
52
+ 'label' => __( 'Waves', 'fl-builder' ),
53
+ 'name' => 'wavy',
54
+ 'width' => 800,
55
+ 'height' => 102,
56
+ 'render' => $art_dir . 'wavy.svg.php',
57
+ ));
58
+
59
+ self::register_shape( array(
60
+ 'label' => __( 'Midpoint', 'fl-builder' ),
61
+ 'name' => 'midpoint',
62
+ 'width' => 800,
63
+ 'height' => 50,
64
+ 'render' => $art_dir . 'midpoint.svg.php',
65
+ ));
66
+
67
+ self::register_shape( array(
68
+ 'label' => __( 'Triangle', 'fl-builder' ),
69
+ 'name' => 'triangle',
70
+ 'width' => 50,
71
+ 'height' => 34,
72
+ 'render' => $art_dir . 'triangle.svg.php',
73
+ ));
74
+ self::register_shape( array(
75
+ 'label' => __( 'Circle', 'fl-builder' ),
76
+ 'name' => 'circle',
77
+ 'width' => 100,
78
+ 'height' => 100,
79
+ 'render' => $art_dir . 'circle.svg.php',
80
+ ));
81
+ self::register_shape( array(
82
+ 'label' => __( 'Concave', 'fl-builder' ),
83
+ 'name' => 'concave',
84
+ 'width' => 800,
85
+ 'height' => 50,
86
+ 'render' => $art_dir . 'concave.svg.php',
87
+ ));
88
+ self::register_shape( array(
89
+ 'label' => __( 'Spots', 'fl-builder' ),
90
+ 'name' => 'dot-cluster',
91
+ 'width' => 800,
92
+ 'height' => 315,
93
+ 'render' => $art_dir . 'dot-cluster.svg.php',
94
+ ));
95
+ self::register_shape( array(
96
+ 'label' => __( 'Topography', 'fl-builder' ),
97
+ 'name' => 'topography',
98
+ 'width' => 600,
99
+ 'height' => 600,
100
+ 'render' => $art_dir . 'topography.svg.php',
101
+ ));
102
+ self::register_shape( array(
103
+ 'label' => __( 'Rectangle', 'fl-builder' ),
104
+ 'name' => 'rect',
105
+ 'width' => 800,
106
+ 'height' => 450,
107
+ 'render' => $art_dir . 'rect.svg.php',
108
+ ));
109
+
110
+ // Trigger registration process for external shapes
111
+ do_action( 'fl_register_art' );
112
+ }
113
+
114
+ /**
115
+ * Register a new piece of SVG art into the system
116
+ *
117
+ * @param Array $args - the metadata for a piece of art
118
+ * @return void
119
+ */
120
+ static public function register_shape( $args = array() ) {
121
+ $defaults = array(
122
+ 'label' => __( 'Untitled Shape', 'fl-builder' ),
123
+ 'name' => 'untitled-shape',
124
+ 'x' => 0,
125
+ 'y' => 0,
126
+ 'width' => 0,
127
+ 'height' => 0,
128
+ 'preserve_aspect_ratio' => 'none',
129
+ 'render' => '',
130
+ 'preset_settings' => array(),
131
+ );
132
+
133
+ $args = wp_parse_args( $args, $defaults );
134
+ $key = $args['name'];
135
+
136
+ /**
137
+ * Setup a preset to reference the shape's initial configuration later
138
+ * This is so when you choose a shape, we can also setup other fields for the optimal inital appearance.
139
+ */
140
+ FLBuilderSettingsPresets::register( 'shape', array(
141
+ 'name' => $args['name'],
142
+ 'label' => $args['label'],
143
+ 'settings' => $args['preset_settings'],
144
+ 'data' => array(
145
+ 'viewBox' => array(
146
+ 'x' => $args['x'],
147
+ 'y' => $args['y'],
148
+ 'width' => $args['width'],
149
+ 'height' => $args['height'],
150
+ ),
151
+ ),
152
+ ));
153
+
154
+ self::$artwork[ $key ] = $args;
155
+ }
156
+
157
+ /**
158
+ * Return the array of registered artwork
159
+ *
160
+ * @param String $key - index key in the artwork array
161
+ * @return Array
162
+ */
163
+ static public function get_art( $key = null ) {
164
+ $art = apply_filters( 'fl_shape_artwork', self::$artwork );
165
+
166
+ if ( $key && isset( $art[ $key ] ) ) {
167
+ return $art[ $key ];
168
+ }
169
+
170
+ return $art;
171
+ }
172
+
173
+ /**
174
+ * Create option sets for each preset type and add to FLBuilderConfig.optionSets
175
+ *
176
+ * @param Array $option_sets - previously set option sets
177
+ * @return Array
178
+ */
179
+ static public function filter_shared_option_sets( $option_sets ) {
180
+ $art = self::get_art();
181
+
182
+ $option_sets['shapes'] = array(
183
+ '' => __( 'None', 'fl-builder' ),
184
+ );
185
+
186
+ foreach ( $art as $handle => $shape ) {
187
+ $option_sets['shapes'][ $handle ] = $shape['label'];
188
+ }
189
+
190
+ return $option_sets;
191
+ }
192
+
193
+ /**
194
+ * Render the shape artwork with the current settings.
195
+ *
196
+ * @param Array $shape - the registered metadata for the current shape
197
+ * @param Object $settings - the current node's settings object
198
+ * @return String - the rendered string
199
+ */
200
+ static public function render_art( $shape, $settings ) {
201
+
202
+ // Render artwork into a buffer
203
+ if ( $shape ) {
204
+ ob_start();
205
+ $render = $shape['render'];
206
+
207
+ if ( is_string( $render ) && file_exists( $render ) ) {
208
+ include $render;
209
+ }
210
+ $output = ob_get_clean();
211
+ }
212
+ return $output;
213
+ }
214
+
215
+ /**
216
+ * Get the node types that support layers
217
+ *
218
+ * @return Array
219
+ */
220
+ static public function get_supported_node_types() {
221
+ return self::$supported_node_types;
222
+ }
223
+
224
+ /**
225
+ * Get any layers added to a node
226
+ *
227
+ * @param Object $node being rendered
228
+ * @return Array of layer descriptions
229
+ */
230
+ static public function get_node_layers( $node ) {
231
+ $layers = array();
232
+
233
+ if ( in_array( $node->type, self::get_supported_node_types() ) ) {
234
+
235
+ $settings = $node->settings;
236
+
237
+ if ( ! empty( $settings->{'top_edge_shape'} ) ) {
238
+ $layers['top'] = array(
239
+ 'label' => __( 'Top Shape Layer', 'fl-builder' ),
240
+ 'type' => 'shape',
241
+ 'prefix' => 'top_edge_',
242
+ 'position' => 'top',
243
+ );
244
+ }
245
+ if ( ! empty( $settings->{'bottom_edge_shape'} ) ) {
246
+ $layers['bottom'] = array(
247
+ 'label' => __( 'Bottom Shape Layer', 'fl-builder' ),
248
+ 'type' => 'shape',
249
+ 'prefix' => 'bottom_edge_',
250
+ 'position' => 'bottom',
251
+ );
252
+ }
253
+ }
254
+
255
+ return $layers;
256
+ }
257
+
258
+ /**
259
+ * Render any layers a node has
260
+ *
261
+ * @param Object $node
262
+ * @return void
263
+ */
264
+ static public function render_node_layers( $node ) {
265
+ $layers = self::get_node_layers( $node );
266
+
267
+ if ( ! empty( $layers ) ) {
268
+ foreach ( $layers as $key => $layer ) {
269
+ self::render_node_layer( $layer, $node );
270
+ }
271
+ }
272
+ }
273
+
274
+ /**
275
+ * Render a single layer into a node
276
+ *
277
+ * @param Array $layer meta
278
+ * @param Object $node
279
+ * @return void
280
+ */
281
+ static public function render_node_layer( $layer, $node ) {
282
+ if ( 'shape' === $layer['type'] ) {
283
+ self::render_node_shape_layer( $layer, $node );
284
+ return;
285
+ }
286
+ }
287
+
288
+ /**
289
+ * Render a shape layer into a node
290
+ *
291
+ * @param Array $layer meta
292
+ * @param Object $node
293
+ * @return void
294
+ */
295
+ static public function render_node_shape_layer( $layer, $node ) {
296
+
297
+ $settings = $node->settings;
298
+ $id = $node->node;
299
+ $position = $layer['position'];
300
+ $prefix = $layer['prefix'];
301
+ $shape_name = $settings->{ $prefix . 'shape' };
302
+ $shape_args = self::get_art( $shape_name );
303
+ $content = self::render_art( $shape_args, $settings );
304
+
305
+ $x = $shape_args['x'];
306
+ $y = $shape_args['y'];
307
+ $width = $shape_args['width'];
308
+ $height = $shape_args['height'];
309
+ $view_box = "$x $y $width $height";
310
+ $preserve_aspect_ratio = $shape_args['preserve_aspect_ratio'];
311
+
312
+ $align = $settings->{ $prefix . 'align' };
313
+ $ending = str_replace( ' ', '-', $align );
314
+ $svg_class = 'fl-builder-layer-align-' . $ending;
315
+ include FL_BUILDER_DIR . 'includes/shape-layer.php';
316
+ }
317
+
318
+
319
+ /**
320
+ * Get the settings form for shapes
321
+ *
322
+ * @return void
323
+ */
324
+ static public function get_shape_settings_sections() {
325
+ $sections = array();
326
+ $layers = array(
327
+ 'top' => __( 'Top', 'fl-builder' ),
328
+ 'bottom' => __( 'Bottom', 'fl-builder' ),
329
+ );
330
+
331
+ foreach ( $layers as $position => $position_label ) {
332
+ $prefix = $position . '_edge_';
333
+
334
+ // Preset & Shape Section
335
+ $sections[ $prefix . 'shape' ] = array(
336
+ 'title' => sprintf( __( '%s Shape', 'fl-builder' ), $position_label ),
337
+ 'fields' => array(
338
+ $prefix . 'shape' => array(
339
+ 'type' => 'select',
340
+ 'label' => __( 'Shape', 'fl-builder' ),
341
+ 'options' => 'shapes',
342
+ 'hide' => array(
343
+ '' => array(
344
+ 'sections' => array(
345
+ $prefix . 'style',
346
+ ),
347
+ 'fields' => array(
348
+ $prefix . 'size',
349
+ $prefix . 'align',
350
+ $prefix . 'z_pos',
351
+ ),
352
+ ),
353
+ ),
354
+ 'preview' => array(
355
+ 'type' => 'callback',
356
+ 'callback' => 'previewShape',
357
+ 'prefix' => $prefix,
358
+ 'position' => $position,
359
+ ),
360
+ ),
361
+ $prefix . 'size' => array(
362
+ 'type' => 'dimension',
363
+ 'label' => __( 'Size', 'fl-builder' ),
364
+ 'units' => array( 'px', 'vw', 'vh', '%' ),
365
+ 'slider' => array(
366
+ 'width' => array(
367
+ 'px' => array(
368
+ 'min' => 0,
369
+ 'max' => 5000,
370
+ 'step' => 10,
371
+ ),
372
+ 'vw' => array(
373
+ 'min' => 0,
374
+ 'max' => 500,
375
+ ),
376
+ 'vh' => array(
377
+ 'min' => 0,
378
+ 'max' => 500,
379
+ ),
380
+ '%' => array(
381
+ 'min' => 0,
382
+ 'max' => 300,
383
+ ),
384
+ ),
385
+ 'height' => array(
386
+ 'px' => array(
387
+ 'min' => 0,
388
+ 'max' => 2000,
389
+ 'step' => 10,
390
+ ),
391
+ 'vw' => array(
392
+ 'min' => 0,
393
+ 'max' => 200,
394
+ ),
395
+ 'vh' => array(
396
+ 'min' => 0,
397
+ 'max' => 200,
398
+ ),
399
+ '%' => array(
400
+ 'min' => 0,
401
+ 'max' => 100,
402
+ ),
403
+ ),
404
+ 'top' => array(
405
+ 'px' => array(
406
+ 'min' => -500,
407
+ 'max' => 500,
408
+ ),
409
+ 'vw' => array(
410
+ 'min' => -20,
411
+ 'max' => 20,
412
+ ),
413
+ 'vh' => array(
414
+ 'min' => -20,
415
+ 'max' => 20,
416
+ ),
417
+ '%' => array(
418
+ 'min' => 0,
419
+ 'max' => 100,
420
+ ),
421
+ ),
422
+ ),
423
+ 'keys' => array(
424
+ 'width' => __( 'Width', 'fl-builder' ),
425
+ 'height' => __( 'Height', 'fl-builder' ),
426
+ 'top' => __( 'Y Offset', 'fl-builder' ),
427
+ ),
428
+ 'preview' => array(
429
+ 'type' => 'callback',
430
+ 'callback' => 'previewShapeLayerSize',
431
+ 'prefix' => $prefix,
432
+ 'position' => $position,
433
+ ),
434
+ ),
435
+ $prefix . 'align' => array(
436
+ 'type' => 'select',
437
+ 'label' => __( 'Align', 'fl-builder' ),
438
+ 'default' => $position . ' center',
439
+ 'options' => array(
440
+ 'top left' => __( 'Top Left', 'fl-builder' ),
441
+ 'top center' => __( 'Top Center', 'fl-builder' ),
442
+ 'top right' => __( 'Top Right', 'fl-builder' ),
443
+ 'center left' => __( 'Center Left', 'fl-builder' ),
444
+ 'center center' => __( 'Center', 'fl-builder' ),
445
+ 'center right' => __( 'Center Right', 'fl-builder' ),
446
+ 'bottom left' => __( 'Bottom Left', 'fl-builder' ),
447
+ 'bottom center' => __( 'Bottom Center', 'fl-builder' ),
448
+ 'bottom right' => __( 'Bottom Right', 'fl-builder' ),
449
+ ),
450
+ 'preview' => array(
451
+ 'type' => 'callback',
452
+ 'callback' => 'previewShapeAlign',
453
+ 'prefix' => $prefix,
454
+ 'selector' => ".fl-builder-$position-edge-layer > *",
455
+ ),
456
+ ),
457
+ ),
458
+ );
459
+
460
+ // Shape Styles
461
+ $sections[ $prefix . 'style' ] = array(
462
+ 'title' => sprintf( __( '%s Shape Style', 'fl-builder' ), $position_label ),
463
+ 'fields' => array(
464
+ $prefix . 'fill_style' => array(
465
+ 'type' => 'button-group',
466
+ 'options' => array(
467
+ 'color' => __( 'Color Fill', 'fl-builder' ),
468
+ 'gradient' => __( 'Gradient Fill', 'fl-builder' ),
469
+ ),
470
+ 'default' => 'color',
471
+ 'preview' => array(
472
+ 'type' => 'callback',
473
+ 'callback' => 'previewShapeFillStyle',
474
+ 'position' => $position,
475
+ 'prefix' => $prefix,
476
+ 'selector' => ".fl-builder-$position-edge-layer .fl-shape-content .fl-shape",
477
+ ),
478
+ 'toggle' => array(
479
+ 'color' => array(
480
+ 'fields' => array(
481
+ $prefix . 'fill_color'
482
+ ),
483
+ ),
484
+ 'gradient' => array(
485
+ 'fields' => array(
486
+ $prefix . 'fill_gradient'
487
+ ),
488
+ ),
489
+ ),
490
+ ),
491
+ $prefix . 'fill_color' => array(
492
+ 'type' => 'color',
493
+ 'connections' => array( 'color' ),
494
+ 'label' => __( 'Color', 'fl-builder' ),
495
+ 'show_reset' => true,
496
+ 'show_alpha' => true,
497
+ 'responsive' => true,
498
+ 'default' => 'aaa',
499
+ 'preview' => array(
500
+ 'type' => 'css',
501
+ 'selector' => ".fl-builder-$position-edge-layer .fl-shape-content .fl-shape",
502
+ 'property' => 'fill',
503
+ ),
504
+ ),
505
+ $prefix . 'fill_gradient' => array(
506
+ 'type' => 'gradient',
507
+ 'label' => __( 'Gradient', 'fl-builder' ),
508
+ 'default' => '',
509
+ 'preview' => array(
510
+ 'type' => 'callback',
511
+ 'callback' => 'previewShapeGradientFill',
512
+ 'position' => $position,
513
+ 'prefix' => $prefix,
514
+ ),
515
+ ),
516
+
517
+ $prefix . 'transform' => array(
518
+ 'type' => 'shape-transform',
519
+ 'label' => __( 'Transform', 'fl-builder' ),
520
+ 'preview' => array(
521
+ 'type' => 'callback',
522
+ 'callback' => 'previewShapeTransform',
523
+ 'selector' => ".fl-builder-$position-edge-layer",
524
+ 'position' => $position,
525
+ ),
526
+ ),
527
+ ),
528
+ );
529
+ }
530
+
531
+ $sections['shapes_container'] = array(
532
+ 'title' => __( 'Shape Container', 'fl-builder' ),
533
+ 'fields' => array(
534
+ 'container_overflow' => array(
535
+ 'type' => 'select',
536
+ 'label' => __( 'Clip Within Container', 'fl-builder' ),
537
+ 'options' => array(
538
+ '' => __( 'No Clip', 'fl-builder' ),
539
+ 'hidden' => __( 'Clip Contents', 'fl-builder' ),
540
+ ),
541
+ 'preview' => array(
542
+ 'type' => 'css',
543
+ 'selector' => '.fl-row-content-wrap',
544
+ 'property' => 'overflow',
545
+ ),
546
+ ),
547
+ ),
548
+ );
549
+ return $sections;
550
+ }
551
+
552
+ /**
553
+ * Render the CSS for any shape layers set on a given node
554
+ *
555
+ * @param Object $node - the current node
556
+ * @return void
557
+ */
558
+ static public function render_shape_layers_css( $node ) {
559
+ $settings = $node->settings;
560
+ $id = $node->node;
561
+
562
+ $layers = array( 'top', 'bottom' );
563
+
564
+ foreach ( $layers as $position ) {
565
+ $prefix = $position . '_edge_';
566
+
567
+ if ( ! empty( $settings->{ $prefix . 'shape' } ) ) {
568
+
569
+ $shape_name = $settings->{ $prefix . 'shape' };
570
+ $presets = FLBuilderSettingsPresets::get_presets();
571
+ $preset = $presets['shape'][ $shape_name ];
572
+
573
+ FLBuilderCSS::rule( array(
574
+ 'selector' => ".fl-node-$id .fl-builder-$position-edge-layer",
575
+ 'enabled' => $settings->{ $prefix . 'size_top'} && $settings->{ $prefix . 'size_unit' },
576
+ 'props' => array(
577
+ $position => $settings->{ $prefix . 'size_top'} . $settings->{ $prefix . 'size_unit' },
578
+ ),
579
+ ) );
580
+
581
+ // Width, Height & Align
582
+ $shape_selector = ".fl-node-$id .fl-builder-$position-edge-layer > *";
583
+ $shape_align = explode( ' ', $settings->{ $prefix . 'align' } );
584
+ $align_y = $shape_align[0];
585
+ $align_x = $shape_align[1];
586
+ $width = $settings->{ $prefix . 'size_width'};
587
+ $height = $settings->{ $prefix . 'size_height' };
588
+ $size_unit = $settings->{ $prefix . 'size_unit' };
589
+
590
+ // Defaults
591
+ $shape_size_rule = array(
592
+ 'selector' => $shape_selector,
593
+ 'enabled' => true,
594
+ 'props' => array(),
595
+ );
596
+ $size_props = array(
597
+ 'width' => '100%',
598
+ 'left' => 'auto',
599
+ 'right' => 'auto',
600
+ 'height' => 'auto',
601
+ 'top' => 'auto',
602
+ 'bottom' => 'auto',
603
+ );
604
+
605
+ if ( ! empty( $width ) ) {
606
+ $size_props['width'] = $width . $size_unit;
607
+ $width_offset = ( $width / 2 ) . $size_unit;
608
+
609
+ switch ( $align_x ) {
610
+ case 'left':
611
+ $size_props['left'] = '0';
612
+ break;
613
+ case 'right':
614
+ $size_props['right'] = '0';
615
+ break;
616
+ case 'center':
617
+ $size_props['left'] = "calc( 50% - $width_offset )";
618
+ break;
619
+ }
620
+ }
621
+
622
+ $height_offset = '';
623
+ if ( ! empty( $height ) ) {
624
+ $height_offset = ( $height / 2 ) . $size_unit;
625
+ $size_props['height'] = $height . $size_unit;
626
+ } elseif ( $width ) {
627
+ $view_box_height = $preset['data']['viewBox']['width'];
628
+ $implied_height = ( $width / $view_box_height ) * 100;
629
+ $height_offset = ( $implied_height / 2 ) . $size_unit;
630
+ }
631
+
632
+ switch ( $align_y ) {
633
+ case 'top':
634
+ $size_props['top'] = '0';
635
+ break;
636
+ case 'bottom':
637
+ $size_props['bottom'] = '0';
638
+ $size_props['top'] = 'auto';
639
+ break;
640
+ case 'center':
641
+ $size_props['top'] = "calc( 50% - $height_offset )";
642
+ break;
643
+ }
644
+
645
+ $shape_size_rule['props'] = $size_props;
646
+ FLBuilderCSS::rule( $shape_size_rule );
647
+
648
+ // Shape Transforms
649
+
650
+ $transforms = $settings->{ $prefix . 'transform' };
651
+ $layer_transforms = array();
652
+ $shape_transforms = array();
653
+ $sign = '';
654
+ if ( ! empty( $transforms ) ) {
655
+
656
+ foreach ( $transforms as $prop => $value ) {
657
+ switch ( $prop ) {
658
+ case 'scaleXSign':
659
+ case 'scaleYSign':
660
+ break;
661
+
662
+ case 'scaleX':
663
+ case 'scaleY':
664
+ if ( empty( $value ) ) {
665
+ $value = 1;
666
+ }
667
+
668
+ // Positive or negative?
669
+ if ( 'scaleX' === $prop ) {
670
+ if ( isset( $transforms['scaleXSign'] ) ) {
671
+ $sign = $transforms['scaleXSign'];
672
+ }
673
+ } else {
674
+ if ( isset( $transforms['scaleYSign'] ) ) {
675
+ $sign = $transforms['scaleYSign'];
676
+ }
677
+ }
678
+ if ( 'invert' === $sign ) {
679
+ $value = -abs( $value );
680
+ } else {
681
+ $value = abs( $value );
682
+ }
683
+
684
+ $value = $prop . '(' . $value . ')';
685
+ $shape_transforms[] = $value;
686
+ break;
687
+
688
+ case 'translateX':
689
+ case 'translateY':
690
+ if ( ! empty( $value ) ) {
691
+ $value = $prop . '(' . $value . 'px)';
692
+ $shape_transforms[] = $value;
693
+ }
694
+ break;
695
+
696
+ case 'skewX':
697
+ case 'skewY':
698
+ if ( ! empty( $value ) ) {
699
+ $shape_transforms[] = $prop . '(' . $value . 'deg)';
700
+ }
701
+ break;
702
+
703
+ case 'rotate':
704
+ if ( ! empty( $value ) ) {
705
+ $shape_transforms[] = 'rotate(' . $value . 'deg)';
706
+ }
707
+ break;
708
+ }
709
+ }
710
+ // Shape Transforms
711
+ FLBuilderCSS::rule( array(
712
+ 'settings' => $settings,
713
+ 'enabled' => ! empty( $shape_transforms ),
714
+ 'selector' => ".fl-node-$id .fl-builder-$position-edge-layer > *",
715
+ 'props' => array(
716
+ 'transform' => implode( ' ', $shape_transforms ),
717
+ ),
718
+ ) );
719
+ }
720
+
721
+ // Shape Fill
722
+ if ( ! empty( $settings->{ $prefix . 'fill_style' } ) ) {
723
+ switch ( $settings->{ $prefix . 'fill_style' } ) {
724
+
725
+ case 'color':
726
+ FLBuilderCSS::responsive_rule( array(
727
+ 'settings' => $settings,
728
+ 'setting_name' => $prefix . 'fill_color',
729
+ 'selector' => ".fl-node-$id .fl-builder-$position-edge-layer .fl-shape-content .fl-shape",
730
+ 'prop' => 'fill',
731
+ ) );
732
+ break;
733
+
734
+ case 'gradient':
735
+ $gradient_type = $settings->{ $prefix . 'fill_gradient' }['type'];
736
+ $gradient_id = "fl-row-$id-$prefix-$gradient_type-gradient";
737
+ FLBuilderCSS::rule( array(
738
+ 'selector' => ".fl-node-$id .fl-builder-$position-edge-layer .fl-shape",
739
+ 'enabled' => $settings->{ $prefix . 'fill_gradient' },
740
+ 'props' => array(
741
+ 'fill' => 'url(#' . $gradient_id . ')',
742
+ ),
743
+ ) );
744
+ break;
745
+ case 'pattern':
746
+ $pattern_id = "fl-row-$id-$prefix-pattern";
747
+ FLBuilderCSS::rule( array(
748
+ 'selector' => ".fl-node-$id .fl-builder-$position-edge-layer .fl-shape-content .fl-shape",
749
+ 'enabled' => true,
750
+ 'props' => array(
751
+ 'fill' => 'url(#' . $pattern_id . ')',
752
+ ),
753
+ ) );
754
+ FLBuilderCSS::rule( array(
755
+ 'selector' => ".fl-node-$id .fl-builder-$position-edge-layer pattern .fl-shape",
756
+ 'enabled' => true,
757
+ 'props' => array(
758
+ 'fill' => $settings->{ $prefix . 'fill_pattern_shape_color' },
759
+ ),
760
+ ) );
761
+ break;
762
+ }
763
+ }
764
+ }
765
+ }
766
+
767
+ // Shared styles
768
+ FLBuilderCSS::responsive_rule( array(
769
+ 'settings' => $settings,
770
+ 'setting_name' => 'container_overflow',
771
+ 'selector' => ".fl-node-$id .fl-row-content-wrap",
772
+ 'prop' => 'overflow',
773
+ ) );
774
+ }
775
+
776
+ /**
777
+ * Convert a position keyword ( left, right, center, ... ) to a position integer ( 0.0 - 1.0 )
778
+ *
779
+ * @param String $position
780
+ * @return Int | Null
781
+ */
782
+ static public function get_int_for_position_name( $position = '' ) {
783
+
784
+ switch ( $position ) {
785
+ case 'left':
786
+ case 'top':
787
+ return 0;
788
+ case 'center':
789
+ return .5;
790
+ case 'right':
791
+ case 'bottom':
792
+ return 1;
793
+ default:
794
+ return null;
795
+ }
796
+ }
797
+ }
798
+ FLBuilderArt::init();
classes/class-fl-builder-color.php CHANGED
@@ -11,33 +11,68 @@ final class FLBuilderColor {
11
  * Converts a hex string into an array of RGB values.
12
  *
13
  * @since 1.0
 
14
  * @param string $hex A hex color value without the # sign.
15
  * @return array An array of RGB values.
16
  */
17
  static public function hex_to_rgb( $hex ) {
 
 
 
 
 
 
 
 
18
  return array(
19
- 'r' => hexdec( substr( $hex,0,2 ) ),
20
- 'g' => hexdec( substr( $hex,2,2 ) ),
21
- 'b' => hexdec( substr( $hex,4,2 ) ),
22
  );
23
  }
24
 
25
  /**
26
- * Adjusts the brightness of a hex color value based on
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  * the number of steps provided.
28
  *
29
  * @since 1.0
30
- * @param string $hex A hex color value without the # sign.
 
31
  * @param int $steps The number of steps to adjust the color.
32
  * @param string $type The type of adjustment to make. Either lighten, darken or reverse.
33
- * @return string The adjusted hex string.
34
  */
35
- static public function adjust_brightness( $hex, $steps, $type ) {
 
 
36
  // Get rgb vars.
37
- $rgb = self::hex_to_rgb( $hex );
38
- $r = $rgb['r'];
39
- $g = $rgb['g'];
40
- $b = $rgb['b'];
 
 
 
 
 
 
 
 
41
 
42
  // Should we darken the color?
43
  if ( 'reverse' == $type && $r + $g + $b > 382 ) {
@@ -46,28 +81,147 @@ final class FLBuilderColor {
46
  $steps = -$steps;
47
  }
48
 
49
- // Build the new color.
50
  $steps = max( -255, min( 255, $steps ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
 
52
- $r = max( 0,min( 255,$r + $steps ) );
53
- $g = max( 0,min( 255,$g + $steps ) );
54
- $b = max( 0,min( 255,$b + $steps ) );
55
 
56
- $r_hex = str_pad( dechex( $r ), 2, '0', STR_PAD_LEFT );
57
- $g_hex = str_pad( dechex( $g ), 2, '0', STR_PAD_LEFT );
58
- $b_hex = str_pad( dechex( $b ), 2, '0', STR_PAD_LEFT );
 
 
 
 
 
 
59
 
60
- return $r_hex . $g_hex . $b_hex;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
  }
62
 
63
  /**
64
- * Returns RGB or hex color value.
 
65
  *
66
- * @since 1.10.8
67
- * @param string $color A color to check.
68
  * @return string
69
  */
70
- static public function hex_or_rgb( $color ) {
71
- return strpos( $color, 'rgb' ) !== false ? $color : '#' . $color;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72
  }
73
  }
11
  * Converts a hex string into an array of RGB values.
12
  *
13
  * @since 1.0
14
+ * @since 2.2 Added support for rgba values.
15
  * @param string $hex A hex color value without the # sign.
16
  * @return array An array of RGB values.
17
  */
18
  static public function hex_to_rgb( $hex ) {
19
+ if ( strstr( $hex, 'rgb' ) ) {
20
+ $rgb = explode( ',', preg_replace( '/[a-z\(\)]/', '', $hex ) );
21
+ return array(
22
+ 'r' => $rgb[0],
23
+ 'g' => $rgb[1],
24
+ 'b' => $rgb[2],
25
+ );
26
+ }
27
  return array(
28
+ 'r' => hexdec( substr( $hex, 0, 2 ) ),
29
+ 'g' => hexdec( substr( $hex, 2, 2 ) ),
30
+ 'b' => hexdec( substr( $hex, 4, 2 ) ),
31
  );
32
  }
33
 
34
  /**
35
+ * Returns RGB or hex color value.
36
+ *
37
+ * @since 1.10.8
38
+ * @param string $color A color to check.
39
+ * @return string
40
+ */
41
+ static public function hex_or_rgb( $color ) {
42
+ if ( ! empty( $color ) && ! stristr( $color, 'rgb' ) && ! stristr( $color, '#' ) ) {
43
+ $color = '#' . $color;
44
+ }
45
+
46
+ return $color;
47
+ }
48
+
49
+ /**
50
+ * Adjusts the brightness of a hex or rgba color value based on
51
  * the number of steps provided.
52
  *
53
  * @since 1.0
54
+ * @since 2.2 Added support for rgba values.
55
+ * @param string $value A hex or rgba color value.
56
  * @param int $steps The number of steps to adjust the color.
57
  * @param string $type The type of adjustment to make. Either lighten, darken or reverse.
58
+ * @return string The adjusted value string.
59
  */
60
+ static public function adjust_brightness( $value, $steps, $type ) {
61
+ $is_rgb = strstr( $value, 'rgb' );
62
+
63
  // Get rgb vars.
64
+ if ( $is_rgb ) {
65
+ $rgb = explode( ',', preg_replace( '/[a-z\(\)]/', '', $value ) );
66
+ $r = $rgb[0];
67
+ $g = $rgb[1];
68
+ $b = $rgb[2];
69
+ $a = count( $rgb ) > 3 ? $rgb[3] : false;
70
+ } else {
71
+ $rgb = self::hex_to_rgb( $value );
72
+ $r = $rgb['r'];
73
+ $g = $rgb['g'];
74
+ $b = $rgb['b'];
75
+ }
76
 
77
  // Should we darken the color?
78
  if ( 'reverse' == $type && $r + $g + $b > 382 ) {
81
  $steps = -$steps;
82
  }
83
 
84
+ // Adjustr the rgb values.
85
  $steps = max( -255, min( 255, $steps ) );
86
+ $r = max( 0, min( 255, $r + $steps ) );
87
+ $g = max( 0, min( 255, $g + $steps ) );
88
+ $b = max( 0, min( 255, $b + $steps ) );
89
+
90
+ // Return the adjusted color value.
91
+ if ( $is_rgb ) {
92
+ $value = false === $a ? "rgb($r,$g,$b)" : "rgba($r,$g,$b,$a)";
93
+ } else {
94
+ $r_hex = str_pad( dechex( $r ), 2, '0', STR_PAD_LEFT );
95
+ $g_hex = str_pad( dechex( $g ), 2, '0', STR_PAD_LEFT );
96
+ $b_hex = str_pad( dechex( $b ), 2, '0', STR_PAD_LEFT );
97
+ $value = $r_hex . $g_hex . $b_hex;
98
+ }
99
+
100
+ return $value;
101
+ }
102
+
103
+ /**
104
+ * Returns a gradient value string. Must be passed a
105
+ * gradient setting array from a gradient field.
106
+ *
107
+ * @since 2.2
108
+ * @param array $setting
109
+ * @return string
110
+ */
111
+ static public function gradient( $setting ) {
112
+ $gradient = '';
113
+ $values = array();
114
+
115
+ if ( ! is_array( $setting ) ) {
116
+ return $gradient;
117
+ }
118
 
119
+ foreach ( $setting['colors'] as $i => $color ) {
120
+ $stop = $setting['stops'][ $i ];
 
121
 
122
+ if ( empty( $color ) ) {
123
+ $color = 'rgba(255,255,255,0)';
124
+ }
125
+ if ( ! strstr( $color, 'rgb' ) ) {
126
+ $color = '#' . $color;
127
+ }
128
+ if ( ! is_numeric( $stop ) ) {
129
+ $stop = 0;
130
+ }
131
 
132
+ $values[] = $color . ' ' . $stop . '%';
133
+ }
134
+
135
+ $values = implode( ', ', $values );
136
+
137
+ if ( 'linear' === $setting['type'] ) {
138
+ if ( ! is_numeric( $setting['angle'] ) ) {
139
+ $setting['angle'] = 0;
140
+ }
141
+ $gradient = 'linear-gradient(' . $setting['angle'] . 'deg, ' . $values . ')';
142
+ } else {
143
+ $gradient = 'radial-gradient(at ' . $setting['position'] . ', ' . $values . ')';
144
+ }
145
+
146
+ return $gradient;
147
  }
148
 
149
  /**
150
+ * Returns a shadow value string. Must be passed a
151
+ * shadow setting array from a shadow field.
152
  *
153
+ * @since 2.2
154
+ * @param array $setting
155
  * @return string
156
  */
157
+ static public function shadow( $setting ) {
158
+ $shadow = '';
159
+
160
+ if ( isset( $setting['color'] ) && '' !== $setting['color'] ) {
161
+
162
+ if ( '' === $setting['horizontal'] ) {
163
+ $setting['horizontal'] = 0;
164
+ }
165
+ if ( '' === $setting['vertical'] ) {
166
+ $setting['vertical'] = 0;
167
+ }
168
+ if ( '' === $setting['blur'] ) {
169
+ $setting['blur'] = 0;
170
+ }
171
+ if ( isset( $setting['spread'] ) && '' === $setting['spread'] ) {
172
+ $setting['spread'] = 0;
173
+ }
174
+ if ( ! strstr( $setting['color'], 'rgb' ) ) {
175
+ $setting['color'] = '#' . $setting['color'];
176
+ }
177
+
178
+ $shadow = $setting['horizontal'] . 'px ';
179
+ $shadow .= $setting['vertical'] . 'px ';
180
+ $shadow .= $setting['blur'] . 'px ';
181
+
182
+ if ( isset( $setting['spread'] ) ) {
183
+ $shadow .= $setting['spread'] . 'px ';
184
+ }
185
+
186
+ $shadow .= $setting['color'];
187
+ }
188
+
189
+ return $shadow;
190
+ }
191
+
192
+ /**
193
+ * Get the raw rgba values for a color value
194
+ *
195
+ * @since 2.2
196
+ * @param String $color - hex or rgb value
197
+ * @return Array
198
+ */
199
+ static public function rgba_values_for_color( $value = '' ) {
200
+ $is_rgb = strstr( $value, 'rgb' );
201
+
202
+ // Get rgb vars.
203
+ if ( $is_rgb ) {
204
+ $rgb = explode( ',', preg_replace( '/[a-z\(\)]/', '', $value ) );
205
+ $r = $rgb[0];
206
+ $g = $rgb[1];
207
+ $b = $rgb[2];
208
+ $a = count( $rgb ) > 3 ? $rgb[3] : false;
209
+ } else {
210
+ $rgb = self::hex_to_rgb( $value );
211
+ $r = $rgb['r'];
212
+ $g = $rgb['g'];
213
+ $b = $rgb['b'];
214
+ $a = 1;
215
+ }
216
+ if ( count( $rgb ) === 4 ) {
217
+ $rgb = array_slice( $rgb, 0, 3 );
218
+ }
219
+ return array(
220
+ 'r' => $r,
221
+ 'g' => $g,
222
+ 'b' => $b,
223
+ 'a' => $a,
224
+ 'rgb' => 'rgb(' . implode( ',', $rgb ) . ')',
225
+ );
226
  }
227
  }
classes/class-fl-builder-css.php ADDED
@@ -0,0 +1,530 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Helper class for outputting CSS.
5
+ *
6
+ * @since 2.2
7
+ */
8
+ final class FLBuilderCSS {
9
+
10
+ /**
11
+ * An array of rule arg arrays that is used
12
+ * and cleared when the render method is called.
13
+ *
14
+ * @since 2.2
15
+ * @var array $rules
16
+ */
17
+ static protected $rules = array();
18
+
19
+ /**
20
+ * Adds a rule config array.
21
+ *
22
+ * @since 2.2
23
+ * @param array $rules
24
+ * @return void
25
+ */
26
+ static public function rule( $args = array() ) {
27
+ self::$rules[] = $args;
28
+ }
29
+
30
+ /**
31
+ * Adds rule config arrays for responsive settings.
32
+ *
33
+ * @since 2.2
34
+ * @param array $args
35
+ * @return void
36
+ */
37
+ static public function responsive_rule( $args = array() ) {
38
+ $global_settings = FLBuilderModel::get_global_settings();
39
+ $default_args = array(
40
+ 'settings' => null,
41
+ 'setting_name' => '',
42
+ 'setting_base_name' => '',
43
+ 'selector' => '',
44
+ 'prop' => '',
45
+ 'props' => array(),
46
+ 'unit' => '',
47
+ 'enabled' => true,
48
+ 'ignore' => array(),
49
+ );
50
+ $args = wp_parse_args( $args, $default_args );
51
+ $settings = $args['settings'];
52
+ $setting_name = $args['setting_name'];
53
+ $setting_base_name = $args['setting_base_name'];
54
+ $selector = $args['selector'];
55
+ $prop = $args['prop'];
56
+ $props = $args['props'];
57
+ $default_unit = $args['unit'];
58
+ $enabled = $args['enabled'];
59
+ $breakpoints = array( '', 'medium', 'responsive' );
60
+ $ignore = $args['ignore'];
61
+
62
+ if ( ! $settings || empty( $setting_name ) || empty( $selector ) ) {
63
+ return;
64
+ }
65
+
66
+ foreach ( $breakpoints as $breakpoint ) {
67
+
68
+ if ( ! empty( $breakpoint ) && ! $global_settings->responsive_enabled ) {
69
+ continue;
70
+ }
71
+
72
+ $suffix = empty( $breakpoint ) ? '' : "_{$breakpoint}";
73
+ $name = $setting_name . $suffix;
74
+ $base_name = empty( $setting_base_name ) ? $name : $setting_base_name . $suffix;
75
+ $setting = isset( $settings->{$name} ) ? $settings->{$name} : null;
76
+
77
+ if ( null === $setting ) {
78
+ continue;
79
+ }
80
+
81
+ if ( $enabled && ! in_array( $setting, $ignore ) ) {
82
+
83
+ if ( ! empty( $prop ) ) {
84
+ $props[ $prop ] = array(
85
+ 'value' => $setting,
86
+ 'unit' => FLBuilderCSS::get_unit( $base_name, $settings, $default_unit ),
87
+ );
88
+ }
89
+
90
+ self::$rules[] = array(
91
+ 'media' => $breakpoint,
92
+ 'selector' => $selector,
93
+ 'props' => $props,
94
+ );
95
+ }
96
+ }
97
+ }
98
+
99
+ /**
100
+ * Adds a responsive rule config array for a dimension field.
101
+ *
102
+ * @since 2.2
103
+ * @param array $args
104
+ * @return void
105
+ */
106
+ static public function dimension_field_rule( $args = array() ) {
107
+ $args = wp_parse_args( $args, array(
108
+ 'settings' => null,
109
+ 'setting_name' => '',
110
+ 'selector' => '',
111
+ 'props' => array(),
112
+ 'unit' => '',
113
+ ) );
114
+ $settings = $args['settings'];
115
+ $setting_base_name = $args['setting_name'];
116
+ $selector = $args['selector'];
117
+ $props = $args['props'];
118
+ $unit = $args['unit'];
119
+
120
+ if ( ! $settings || empty( $setting_base_name ) || empty( $selector ) ) {
121
+ return;
122
+ }
123
+
124
+ foreach ( $props as $prop => $settings_name ) {
125
+ $rules = self::responsive_rule( array(
126
+ 'settings' => $settings,
127
+ 'setting_name' => $settings_name,
128
+ 'setting_base_name' => $setting_base_name,
129
+ 'selector' => $selector,
130
+ 'prop' => $prop,
131
+ 'unit' => $unit,
132
+ ) );
133
+
134
+ if ( ! empty( $rules ) ) {
135
+ self::$rules = array_merge( self::$rules, $rules );
136
+ }
137
+ }
138
+ }
139
+
140
+ /**
141
+ * Adds a responsive rule config array for a compound field.
142
+ *
143
+ * @since 2.2
144
+ * @param array $args
145
+ * @return void
146
+ */
147
+ static public function compound_field_rule( $args = array() ) {
148
+ $global_settings = FLBuilderModel::get_global_settings();
149
+ $args = wp_parse_args( $args, array(
150
+ 'type' => '',
151
+ 'selector' => '',
152
+ 'settings' => null,
153
+ 'setting_name' => '',
154
+ ) );
155
+ $type = $args['type'];
156
+ $selector = $args['selector'];
157
+ $settings = $args['settings'];
158
+ $setting_name = $args['setting_name'];
159
+ $breakpoints = array( '', 'medium', 'responsive' );
160
+
161
+ if ( empty( $type ) || empty( $selector ) || ! $settings || empty( $setting_name ) ) {
162
+ return;
163
+ }
164
+
165
+ foreach ( $breakpoints as $breakpoint ) {
166
+
167
+ if ( ! empty( $breakpoint ) && ! $global_settings->responsive_enabled ) {
168
+ continue;
169
+ }
170
+
171
+ $name = empty( $breakpoint ) ? $setting_name : "{$setting_name}_{$breakpoint}";
172
+ $setting = isset( $settings->{$name} ) ? $settings->{$name} : null;
173
+ $callback = "{$type}_field_props";
174
+ $props = array();
175
+
176
+ // Settings must be an array. Settings in nested forms can become objects when encoded.
177
+ if ( is_object( $setting ) ) {
178
+ $setting = (array) $setting;
179
+ foreach ( $setting as $key => $value ) {
180
+ if ( is_object( $value ) ) {
181
+ $setting[ $key ] = (array) $value;
182
+ }
183
+ }
184
+ }
185
+
186
+ if ( ! is_array( $setting ) ) {
187
+ continue;
188
+ }
189
+ if ( method_exists( __CLASS__, $callback ) ) {
190
+ $props = call_user_func( array( __CLASS__, $callback ), $setting );
191
+ }
192
+
193
+ self::$rules[] = array(
194
+ 'media' => $breakpoint,
195
+ 'selector' => $selector,
196
+ 'props' => $props,
197
+ );
198
+ }
199
+ }
200
+
201
+ /**
202
+ * Adds a responsive rule config array for a border field.
203
+ *
204
+ * @since 2.2
205
+ * @param array $args
206
+ * @return void
207
+ */
208
+ static public function border_field_rule( $args = array() ) {
209
+ $args['type'] = 'border';
210
+ self::compound_field_rule( $args );
211
+ }
212
+
213
+ /**
214
+ * Returns a property config array for a border field.
215
+ *
216
+ * @since 2.2
217
+ * @param array $setting
218
+ * @return array
219
+ */
220
+ static public function border_field_props( $setting = array() ) {
221
+ $props = array();
222
+
223
+ if ( isset( $setting['style'] ) && ! empty( $setting['style'] ) ) {
224
+ $props['border-style'] = $setting['style'];
225
+ $props['border-width'] = '0'; // Default to zero.
226
+ $props['background-clip'] = 'padding-box';
227
+ }
228
+ if ( isset( $setting['color'] ) && ! empty( $setting['color'] ) ) {
229
+ $props['border-color'] = $setting['color'];
230
+ }
231
+ if ( isset( $setting['width'] ) && is_array( $setting['width'] ) ) {
232
+ if ( '' !== $setting['width']['top'] ) {
233
+ $props['border-top-width'] = $setting['width']['top'] . 'px';
234
+ }
235
+ if ( '' !== $setting['width']['right'] ) {
236
+ $props['border-right-width'] = $setting['width']['right'] . 'px';
237
+ }
238
+ if ( '' !== $setting['width']['bottom'] ) {
239
+ $props['border-bottom-width'] = $setting['width']['bottom'] . 'px';
240
+ }
241
+ if ( '' !== $setting['width']['left'] ) {
242
+ $props['border-left-width'] = $setting['width']['left'] . 'px';
243
+ }
244
+ }
245
+ if ( isset( $setting['radius'] ) && is_array( $setting['radius'] ) ) {
246
+ if ( '' !== $setting['radius']['top_left'] ) {
247
+ $props['border-top-left-radius'] = $setting['radius']['top_left'] . 'px';
248
+ }
249
+ if ( '' !== $setting['radius']['top_right'] ) {
250
+ $props['border-top-right-radius'] = $setting['radius']['top_right'] . 'px';
251
+ }
252
+ if ( '' !== $setting['radius']['bottom_left'] ) {
253
+ $props['border-bottom-left-radius'] = $setting['radius']['bottom_left'] . 'px';
254
+ }
255
+ if ( '' !== $setting['radius']['bottom_right'] ) {
256
+ $props['border-bottom-right-radius'] = $setting['radius']['bottom_right'] . 'px';
257
+ }
258
+ }
259
+ if ( isset( $setting['shadow'] ) && is_array( $setting['shadow'] ) ) {
260
+ $props['box-shadow'] = FLBuilderColor::shadow( $setting['shadow'] );
261
+ }
262
+
263
+ return $props;
264
+ }
265
+
266
+ /**
267
+ * Adds a responsive rule config array for a typography field.
268
+ *
269
+ * @since 2.2
270
+ * @param array $args
271
+ * @return void
272
+ */
273
+ static public function typography_field_rule( $args = array() ) {
274
+ $args['type'] = 'typography';
275
+ self::compound_field_rule( $args );
276
+ }
277
+
278
+ /**
279
+ * Returns a property config array for a typography field.
280
+ *
281
+ * @since 2.2
282
+ * @param array $setting
283
+ * @return array
284
+ */
285
+ static public function typography_field_props( $setting = array() ) {
286
+ $props = array();
287
+
288
+ if ( isset( $setting['font_family'] ) && 'Default' !== $setting['font_family'] ) {
289
+ $fallback = FLBuilderFonts::get_font_fallback( $setting['font_family'] );
290
+ $props['font-family'] = sprintf( '%s, %s', $setting['font_family'], $fallback );
291
+ }
292
+ if ( isset( $setting['font_weight'] ) && 'i' == substr( $setting['font_weight'], -1 ) ) {
293
+ $props['font-weight'] = substr( $setting['font_weight'], 0, -1 );
294
+ $props['font-style'] = 'italic';
295
+ }
296
+ if ( isset( $setting['font_weight'] ) && 'default' !== $setting['font_weight'] && 'italic' !== $setting['font_weight'] ) {
297
+ $props['font-weight'] = $setting['font_weight'];
298
+ }
299
+ if ( isset( $setting['font_size'] ) && ! empty( $setting['font_size']['length'] ) ) {
300
+ $props['font-size'] = $setting['font_size']['length'] . $setting['font_size']['unit'];
301
+ }
302
+ if ( isset( $setting['line_height'] ) && ! empty( $setting['line_height']['length'] ) ) {
303
+ $props['line-height'] = $setting['line_height']['length'] . $setting['line_height']['unit'];
304
+ }
305
+ if ( isset( $setting['letter_spacing'] ) && ! empty( $setting['letter_spacing']['length'] ) ) {
306
+ $props['letter-spacing'] = $setting['letter_spacing']['length'] . 'px';
307
+ }
308
+ if ( isset( $setting['text_align'] ) ) {
309
+ $props['text-align'] = $setting['text_align'];
310
+ }
311
+ if ( isset( $setting['text_transform'] ) ) {
312
+ $props['text-transform'] = $setting['text_transform'];
313
+ }
314
+ if ( isset( $setting['text_decoration'] ) ) {
315
+ $props['text-decoration'] = $setting['text_decoration'];
316
+ }
317
+ if ( isset( $setting['font_style'] ) ) {
318
+ $props['font-style'] = $setting['font_style'];
319
+ }
320
+ if ( isset( $setting['font_variant'] ) ) {
321
+ $props['font-variant'] = $setting['font_variant'];
322
+ }
323
+ if ( isset( $setting['text_shadow'] ) ) {
324
+ $props['text-shadow'] = FLBuilderColor::shadow( $setting['text_shadow'] );
325
+ }
326
+
327
+ return $props;
328
+ }
329
+
330
+ /**
331
+ * Renders the CSS for all of the rules that have
332
+ * been added and resets the $rules array.
333
+ *
334
+ * @since 2.2
335
+ * @return void
336
+ */
337
+ static public function render() {
338
+ $rendered = array();
339
+ $css = '';
340
+
341
+ foreach ( self::$rules as $args ) {
342
+ $defaults = array(
343
+ 'media' => '',
344
+ 'selector' => '',
345
+ 'enabled' => true,
346
+ 'props' => array(),
347
+ );
348
+
349
+ $args = array_merge( $defaults, $args );
350
+ $media = self::media_value( $args['media'] );
351
+ $selector = $args['selector'];
352
+ $props = self::properties( $args['props'] );
353
+
354
+ if ( ! $args['enabled'] || empty( $selector ) || empty( $props ) ) {
355
+ continue;
356
+ }
357
+
358
+ if ( ! isset( $rendered[ $media ] ) ) {
359
+ $rendered[ $media ] = array();
360
+ }
361
+
362
+ if ( ! isset( $rendered[ $media ][ $selector ] ) ) {
363
+ $rendered[ $media ][ $selector ] = array();
364
+ }
365
+
366
+ $rendered[ $media ][ $selector ][] = $props;
367
+ }
368
+
369
+ foreach ( $rendered as $media => $selectors ) {
370
+
371
+ if ( ! empty( $media ) ) {
372
+ $css .= "@media($media) {\n";
373
+ $tab = "\t";
374
+ } else {
375
+ $tab = '';
376
+ }
377
+
378
+ foreach ( $selectors as $selector => $group ) {
379
+ $css .= "$tab$selector {\n";
380
+ foreach ( $group as $props ) {
381
+ $css .= str_replace( "\t", "$tab\t", $props );
382
+ }
383
+ $css .= "$tab}\n";
384
+ }
385
+
386
+ if ( ! empty( $media ) ) {
387
+ $css .= "}\n";
388
+ }
389
+ }
390
+
391
+ self::$rules = array();
392
+
393
+ echo $css;
394
+ }
395
+
396
+ /**
397
+ * Returns the property string for a rule block.
398
+ *
399
+ * @since 2.2
400
+ * @param array $props
401
+ * @return string
402
+ */
403
+ static public function properties( $props ) {
404
+ $css = '';
405
+ $defaults = array(
406
+ 'value' => '',
407
+ 'unit' => '',
408
+ 'enabled' => true,
409
+ );
410
+
411
+ foreach ( $props as $name => $args ) {
412
+
413
+ if ( ! is_array( $args ) ) {
414
+ $args = array(
415
+ 'value' => $args,
416
+ );
417
+ }
418
+
419
+ $args = array_merge( $defaults, $args );
420
+ $value = $args['value'];
421
+ $type = self::property_type( $name );
422
+
423
+ if ( '' === $value || ! $args['enabled'] ) {
424
+ continue;
425
+ }
426
+
427
+ switch ( $type ) {
428
+
429
+ case 'color':
430
+ if ( strstr( $value, 'rgb' ) || strstr( $value, 'url' ) ) {
431
+ $css .= "\t$name: $value;\n";
432
+ } else {
433
+ $css .= "\t$name: #$value;\n";
434
+ if ( isset( $args['opacity'] ) && '' !== $args['opacity'] ) {
435
+ $rgb = implode( ',', FLBuilderColor::hex_to_rgb( $value ) );
436
+ $a = $args['opacity'] / 100;
437
+ $css .= "\t$name: rgba($rgb,$a);\n";
438
+ }
439
+ }
440
+ break;
441
+
442
+ case 'image':
443
+ if ( stristr( $value, 'gradient(' ) ) {
444
+ $css .= "\t$name: $value;\n";
445
+ } else {
446
+ $css .= "\t$name: url($value);\n";
447
+ }
448
+ break;
449
+
450
+ default:
451
+ $css .= "\t$name: $value";
452
+ if ( isset( $args['unit'] ) && '' !== $args['unit'] ) {
453
+ $css .= $args['unit'];
454
+ }
455
+ $css .= ";\n";
456
+ }
457
+ }
458
+
459
+ return $css;
460
+ }
461
+
462
+ /**
463
+ * Returns the type for a single property.
464
+ *
465
+ * @since 2.2
466
+ * @param string $name
467
+ * @return string|bool
468
+ */
469
+ static public function property_type( $name ) {
470
+ if ( strstr( $name, 'image' ) ) {
471
+ return 'image';
472
+ } elseif ( strstr( $name, 'color' ) ) {
473
+ return 'color';
474
+ }
475
+ // Support SVG color properties
476
+ if ( 'fill' === $name || 'stroke' === $name ) {
477
+ return 'color';
478
+ }
479
+ return false;
480
+ }
481
+
482
+ /**
483
+ * Returns the value for a media declaration.
484
+ *
485
+ * @since 2.2
486
+ * @param string $media
487
+ * @return string
488
+ */
489
+ static public function media_value( $media ) {
490
+ $settings = FLBuilderModel::get_global_settings();
491
+
492
+ if ( 'default' === $media ) {
493
+ $media = '';
494
+ } elseif ( 'medium' === $media ) {
495
+ $media = "max-width: {$settings->medium_breakpoint}px";
496
+ } elseif ( 'responsive' === $media ) {
497
+ $media = "max-width: {$settings->responsive_breakpoint}px";
498
+ }
499
+
500
+ return $media;
501
+ }
502
+
503
+ /**
504
+ * Checks is unit field value is actually empty or not.
505
+ *
506
+ * @since 2.2
507
+ * @param string $value
508
+ * @return bool
509
+ */
510
+ static public function is_empty( $value = '' ) {
511
+ return empty( $value ) && '0' !== $value;
512
+ }
513
+
514
+ /**
515
+ * Get the unit for a given setting. If no default unit is passed, it looks for a _unit setting.
516
+ *
517
+ * @since 2.2
518
+ * @param string $name
519
+ * @param object $settings
520
+ * @param string $default_unit
521
+ * @return string
522
+ */
523
+ static public function get_unit( $setting_name, $settings, $default_unit = '' ) {
524
+ $unit = $default_unit;
525
+ if ( '' === $unit && property_exists( $settings, $setting_name . '_unit' ) ) {
526
+ $unit = $settings->{$setting_name . '_unit'};
527
+ }
528
+ return $unit;
529
+ }
530
+ }
classes/class-fl-builder-debug.php CHANGED
@@ -90,7 +90,7 @@ final class FL_Debug {
90
 
91
  private static function prepare_tests() {
92
 
93
- global $wpdb, $wp_version;
94
 
95
  $args = array(
96
  'name' => 'WordPress',
@@ -222,6 +222,12 @@ final class FL_Debug {
222
  );
223
  self::register( 'php_sapi', $args );
224
 
 
 
 
 
 
 
225
  $args = array(
226
  'name' => 'PHP Memory Limit',
227
  'data' => self::safe_ini_get( 'memory_limit' ),
90
 
91
  private static function prepare_tests() {
92
 
93
+ global $wpdb, $wp_version, $wp_json;
94
 
95
  $args = array(
96
  'name' => 'WordPress',
222
  );
223
  self::register( 'php_sapi', $args );
224
 
225
+ $args = array(
226
+ 'name' => 'PHP JSON Support',
227
+ 'data' => ( $wp_json instanceof Services_JSON ) ? '*** NO JSON MODULE ***' : 'yes',
228
+ );
229
+ self::register( 'php_json', $args );
230
+
231
  $args = array(
232
  'name' => 'PHP Memory Limit',
233
  'data' => self::safe_ini_get( 'memory_limit' ),
classes/class-fl-builder-fonts.php CHANGED
@@ -35,11 +35,22 @@ final class FLBuilderFonts {
35
  static public function js() {
36
  $default = json_encode( apply_filters( 'fl_builder_font_families_default', FLBuilderFontFamilies::$default ) );
37
  $system = json_encode( apply_filters( 'fl_builder_font_families_system', FLBuilderFontFamilies::$system ) );
38
- $google = json_encode( apply_filters( 'fl_builder_font_families_google', FLBuilderFontFamilies::google() ) );
39
 
40
  echo 'var FLBuilderFontFamilies = { default: ' . $default . ', system: ' . $system . ', google: ' . $google . ' };';
41
  }
42
 
 
 
 
 
 
 
 
 
 
 
 
43
  /**
44
  * Renders a list of all available fonts.
45
  *
@@ -195,9 +206,33 @@ final class FLBuilderFonts {
195
  static public function add_fonts_for_module( $module ) {
196
  $fields = FLBuilderModel::get_settings_form_fields( $module->form );
197
 
 
 
 
198
  foreach ( $fields as $name => $field ) {
199
  if ( 'font' == $field['type'] && isset( $module->settings->$name ) ) {
200
  self::add_font( $module->settings->$name );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
201
  } elseif ( isset( $field['form'] ) ) {
202
  $form = FLBuilderModel::$settings_forms[ $field['form'] ];
203
  self::add_fonts_for_nested_module_form( $module, $form['tabs'], $name );
@@ -420,6 +455,33 @@ final class FLBuilderFonts {
420
  return $urls;
421
  }
422
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
423
  }
424
 
425
  FLBuilderFonts::init();
@@ -437,9 +499,77 @@ final class FLBuilderFontFamilies {
437
  */
438
  static private $_google_json = array();
439
 
 
 
 
 
440
  static public $default = array(
441
  'Default' => array(
442
  'default',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
443
  ),
444
  );
445
 
@@ -479,6 +609,7 @@ final class FLBuilderFontFamilies {
479
  $json = self::$_google_json;
480
  } else {
481
  $json = (array) json_decode( file_get_contents( trailingslashit( FL_BUILDER_DIR ) . 'json/fonts.json' ), true );
 
482
  }
483
  /**
484
  * Filter raw google json data
@@ -501,60 +632,4 @@ final class FLBuilderFontFamilies {
501
  }
502
  return false;
503
  }
504
-
505
-
506
- /**
507
- * Array with a list of system fonts.
508
- * @var array
509
- */
510
- static public $system = array(
511
- 'Helvetica' => array(
512
- 'fallback' => 'Verdana, Arial, sans-serif',
513
- 'weights' => array(
514
- '300',
515
- '400',
516
- '700',
517
- ),
518
- ),
519
- 'Verdana' => array(
520
- 'fallback' => 'Helvetica, Arial, sans-serif',
521
- 'weights' => array(
522
- '300',
523
- '400',
524
- '700',
525
- ),
526
- ),
527
- 'Arial' => array(
528
- 'fallback' => 'Helvetica, Verdana, sans-serif',
529
- 'weights' => array(
530
- '300',
531
- '400',
532
- '700',
533
- ),
534
- ),
535
- 'Times' => array(
536
- 'fallback' => 'Georgia, serif',
537
- 'weights' => array(
538
- '300',
539
- '400',
540
- '700',
541
- ),
542
- ),
543
- 'Georgia' => array(
544
- 'fallback' => 'Times, serif',
545
- 'weights' => array(
546
- '300',
547
- '400',
548
- '700',
549
- ),
550
- ),
551
- 'Courier' => array(
552
- 'fallback' => 'monospace',
553
- 'weights' => array(
554
- '300',
555
- '400',
556
- '700',
557
- ),
558
- ),
559
- );
560
  }
35
  static public function js() {
36
  $default = json_encode( apply_filters( 'fl_builder_font_families_default', FLBuilderFontFamilies::$default ) );
37
  $system = json_encode( apply_filters( 'fl_builder_font_families_system', FLBuilderFontFamilies::$system ) );
38
+ $google = json_encode( apply_filters( 'fl_builder_font_families_google', self::prepare_google_fonts( FLBuilderFontFamilies::google() ) ) );
39
 
40
  echo 'var FLBuilderFontFamilies = { default: ' . $default . ', system: ' . $system . ', google: ' . $google . ' };';
41
  }
42
 
43
+ static public function prepare_google_fonts( $fonts ) {
44
+ foreach ( $fonts as $family => $variants ) {
45
+ foreach ( $variants as $k => $variant ) {
46
+ if ( 'italic' == $variant || 'i' == substr( $variant, -1 ) ) {
47
+ unset( $fonts[ $family ][ $k ] );
48
+ }
49
+ }
50
+ }
51
+ return $fonts;
52
+ }
53
+
54
  /**
55
  * Renders a list of all available fonts.
56
  *
206
  static public function add_fonts_for_module( $module ) {
207
  $fields = FLBuilderModel::get_settings_form_fields( $module->form );
208
 
209
+ // needed for italics.
210
+ $google = FLBuilderFontFamilies::google();
211
+
212
  foreach ( $fields as $name => $field ) {
213
  if ( 'font' == $field['type'] && isset( $module->settings->$name ) ) {
214
  self::add_font( $module->settings->$name );
215
+ } elseif ( 'typography' == $field['type'] && ! empty( $module->settings->$name ) && isset( $module->settings->{ $name }['font_family'] ) ) {
216
+ $fname = $module->settings->{ $name }['font_family'];
217
+ $weight = $module->settings->{ $name }['font_weight'];
218
+
219
+ // handle google italics.
220
+ if ( isset( $google[ $fname ] ) ) {
221
+ $selected_weight = $module->settings->{ $name }['font_weight'];
222
+ $italic = ( isset( $module->settings->{ $name }['font_style'] ) ) ? $module->settings->{ $name }['font_style'] : '';
223
+
224
+ if ( in_array( $selected_weight . 'i', $google[ $fname ] ) && 'italic' == $italic ) {
225
+ $weight = $selected_weight . 'i';
226
+ }
227
+ if ( ( '400' == $selected_weight || 'regular' == $selected_weight ) && 'italic' == $italic && in_array( 'italic', $google[ $fname ] ) ) {
228
+ $weight = '400i';
229
+ }
230
+ }
231
+
232
+ self::add_font( array(
233
+ 'family' => $module->settings->{ $name }['font_family'],
234
+ 'weight' => $weight,
235
+ ) );
236
  } elseif ( isset( $field['form'] ) ) {
237
  $form = FLBuilderModel::$settings_forms[ $field['form'] ];
238
  self::add_fonts_for_nested_module_form( $module, $form['tabs'], $name );
455
  return $urls;
456
  }
457
 
458
+ /**
459
+ * Find font fallback, used by FLBuilderCSS
460
+ * @since 2.2
461
+ */
462
+ static public function get_font_fallback( $font_family ) {
463
+ $fallback = 'sans-serif';
464
+ $default = apply_filters( 'fl_builder_font_families_default', FLBuilderFontFamilies::$default );
465
+ $system = apply_filters( 'fl_builder_font_families_system', FLBuilderFontFamilies::$system );
466
+ $google = apply_filters( 'fl_builder_font_families_google', FLBuilderFontFamilies::google() );
467
+ foreach ( $default as $font => $data ) {
468
+ if ( $font_family == $font && isset( $data['fallback'] ) ) {
469
+ $fallback = $data['fallback'];
470
+ }
471
+ }
472
+ foreach ( $system as $font => $data ) {
473
+ if ( $font_family == $font && isset( $data['fallback'] ) ) {
474
+ $fallback = $data['fallback'];
475
+ }
476
+ }
477
+ foreach ( $google as $font => $data ) {
478
+ if ( $font_family == $font ) {
479
+ $fallback = FLBuilderFontFamilies::get_google_fallback( $font );
480
+ }
481
+ }
482
+ return $fallback;
483
+ }
484
+
485
  }
486
 
487
  FLBuilderFonts::init();
499
  */
500
  static private $_google_json = array();
501
 
502
+ /**
503
+ * Array with a list of default font weights.
504
+ * @var array
505
+ */
506
  static public $default = array(
507
  'Default' => array(
508
  'default',
509
+ '100',
510
+ '200',
511
+ '300',
512
+ '400',
513
+ '500',
514
+ '600',
515
+ '700',
516
+ '800',
517
+ '900',
518
+ ),
519
+ );
520
+
521
+ /**
522
+ * Array with a list of system fonts.
523
+ * @var array
524
+ */
525
+ static public $system = array(
526
+ 'Helvetica' => array(
527
+ 'fallback' => 'Verdana, Arial, sans-serif',
528
+ 'weights' => array(
529
+ '300',
530
+ '400',
531
+ '700',
532
+ ),
533
+ ),
534
+ 'Verdana' => array(
535
+ 'fallback' => 'Helvetica, Arial, sans-serif',
536
+ 'weights' => array(
537
+ '300',
538
+ '400',
539
+ '700',
540
+ ),
541
+ ),
542
+ 'Arial' => array(
543
+ 'fallback' => 'Helvetica, Verdana, sans-serif',
544
+ 'weights' => array(
545
+ '300',
546
+ '400',
547
+ '700',
548
+ ),
549
+ ),
550
+ 'Times' => array(
551
+ 'fallback' => 'Georgia, serif',
552
+ 'weights' => array(
553
+ '300',
554
+ '400',
555
+ '700',
556
+ ),
557
+ ),
558
+ 'Georgia' => array(
559
+ 'fallback' => 'Times, serif',
560
+ 'weights' => array(
561
+ '300',
562
+ '400',
563
+ '700',
564
+ ),
565
+ ),
566
+ 'Courier' => array(
567
+ 'fallback' => 'monospace',
568
+ 'weights' => array(
569
+ '300',
570
+ '400',
571
+ '700',
572
+ ),
573
  ),
574
  );
575
 
609
  $json = self::$_google_json;
610
  } else {
611
  $json = (array) json_decode( file_get_contents( trailingslashit( FL_BUILDER_DIR ) . 'json/fonts.json' ), true );
612
+ self::$_google_json = $json;
613
  }
614
  /**
615
  * Filter raw google json data
632
  }
633
  return false;
634
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
635
  }
classes/class-fl-builder-loader.php CHANGED
@@ -46,7 +46,7 @@ if ( ! class_exists( 'FLBuilderLoader' ) ) {
46
  * @return void
47
  */
48
  static private function define_constants() {
49
- define( 'FL_BUILDER_VERSION', '2.1.7.2' );
50
  define( 'FL_BUILDER_FILE', trailingslashit( dirname( dirname( __FILE__ ) ) ) . 'fl-builder.php' );
51
  define( 'FL_BUILDER_DIR', plugin_dir_path( FL_BUILDER_FILE ) );
52
  define( 'FL_BUILDER_URL', plugins_url( '/', FL_BUILDER_FILE ) );
@@ -76,8 +76,10 @@ if ( ! class_exists( 'FLBuilderLoader' ) ) {
76
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-admin-settings.php';
77
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-ajax.php';
78
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-ajax-layout.php';
 
79
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-auto-suggest.php';
80
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-color.php';
 
81
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-export.php';
82
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-extensions.php';
83
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-fonts.php';
@@ -92,6 +94,7 @@ if ( ! class_exists( 'FLBuilderLoader' ) ) {
92
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-photo.php';
93
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-revisions.php';
94
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-services.php';
 
95
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-shortcodes.php';
96
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-timezones.php';
97
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-ui-content-panel.php';
@@ -103,6 +106,7 @@ if ( ! class_exists( 'FLBuilderLoader' ) ) {
103
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-utils.php';
104
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-wpml.php';
105
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-privacy.php';
 
106
 
107
  /* WP CLI Commands */
108
  if ( defined( 'WP_CLI' ) ) {
46
  * @return void
47
  */
48
  static private function define_constants() {
49
+ define( 'FL_BUILDER_VERSION', '2.2.0.6' );
50
  define( 'FL_BUILDER_FILE', trailingslashit( dirname( dirname( __FILE__ ) ) ) . 'fl-builder.php' );
51
  define( 'FL_BUILDER_DIR', plugin_dir_path( FL_BUILDER_FILE ) );
52
  define( 'FL_BUILDER_URL', plugins_url( '/', FL_BUILDER_FILE ) );
76
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-admin-settings.php';
77
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-ajax.php';
78
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-ajax-layout.php';
79
+ require_once FL_BUILDER_DIR . 'classes/class-fl-builder-art.php';
80
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-auto-suggest.php';
81
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-color.php';
82
+ require_once FL_BUILDER_DIR . 'classes/class-fl-builder-css.php';
83
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-export.php';
84
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-extensions.php';
85
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-fonts.php';
94
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-photo.php';
95
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-revisions.php';
96
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-services.php';
97
+ require_once FL_BUILDER_DIR . 'classes/class-fl-builder-settings-compat.php';
98
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-shortcodes.php';
99
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-timezones.php';
100
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-ui-content-panel.php';
106
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-utils.php';
107
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-wpml.php';
108
  require_once FL_BUILDER_DIR . 'classes/class-fl-builder-privacy.php';
109
+ require_once FL_BUILDER_DIR . 'classes/class-fl-builder-settings-presets.php';
110
 
111
  /* WP CLI Commands */
112
  if ( defined( 'WP_CLI' ) ) {
classes/class-fl-builder-model.php CHANGED
@@ -1375,21 +1375,46 @@ final class FLBuilderModel {
1375
  $settings = $post_data['node_preview_processed_settings'];
1376
  }
1377
  } else {
1378
- $defaults = self::get_node_defaults( $node );
1379
- $settings = (object) array_merge( (array) $defaults, (array) $node->settings );
1380
-
1381
- if ( 'module' == $node->type ) {
1382
- $settings = self::merge_nested_module_defaults( $node->settings->type, $settings );
1383
- } elseif ( 'column' == $node->type ) {
1384
- $settings = self::merge_nested_form_defaults( 'general', 'col', $settings );
1385
- } elseif ( 'row' == $node->type ) {
1386
- $settings = self::merge_nested_form_defaults( 'general', 'row', $settings );
1387
- }
1388
  }
1389
 
1390
  return ! $filter ? $settings : apply_filters( 'fl_builder_node_settings', $settings, $node );
1391
  }
1392
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1393
  /**
1394
  * Returns node settings that have been processed with
1395
  * specific logic based on the type of node.
@@ -1652,9 +1677,10 @@ final class FLBuilderModel {
1652
  * @since 1.0
1653
  * @param string $cols The type of column layout to use.
1654
  * @param int $position The position of the new row.
 
1655
  * @return object The new row object.
1656
  */
1657
- static public function add_row( $cols = '1-col', $position = false ) {
1658
  $data = self::get_layout_data();
1659
  $settings = self::get_row_defaults();
1660
  $row_node_id = self::generate_node_id();
@@ -1676,7 +1702,14 @@ final class FLBuilderModel {
1676
  }
1677
 
1678
  // Add a column group.
1679
- self::add_col_group( $row_node_id, $cols, 0 );
 
 
 
 
 
 
 
1680
 
1681
  // Return the updated row.
1682
  return self::get_node( $row_node_id );
@@ -1809,49 +1842,6 @@ final class FLBuilderModel {
1809
  return $settings;
1810
  }
1811
 
1812
- /**
1813
- * Returns an array of spacing placeholders for row
1814
- * margins and padding.
1815
- *
1816
- * @since 1.9
1817
- * @return array
1818
- */
1819
- static public function get_row_spacing_placeholders() {
1820
- $settings = FLBuilderModel::get_global_settings();
1821
- $placeholders = array();
1822
-
1823
- // Default.
1824
- $placeholders['row_margins'] = $settings->row_margins;
1825
- $placeholders['row_padding'] = $settings->row_padding;
1826
-
1827
- // Medium.
1828
- $placeholders['row_margins_medium'] = ( '' != $settings->row_margins_medium ) ? $settings->row_margins_medium : $settings->row_margins;
1829
- $placeholders['row_padding_medium'] = ( '' != $settings->row_padding_medium ) ? $settings->row_padding_medium : $settings->row_padding;
1830
-
1831
- // Responsive row margins.
1832
- if ( '' != $settings->row_margins_responsive ) {
1833
- $placeholders['row_margins_responsive'] = $settings->row_margins_responsive;
1834
- } elseif ( $settings->auto_spacing ) {
1835
- $placeholders['row_margins_responsive'] = 0;
1836
- } else {
1837
- $placeholders['row_margins_responsive'] = $placeholders['row_margins_medium'];
1838
- }
1839
-
1840
- // Responsive row padding.
1841
- if ( '' != $settings->row_padding_responsive ) {
1842
- $placeholders['row_padding_tb_responsive'] = $settings->row_padding_responsive;
1843
- $placeholders['row_padding_lr_responsive'] = $settings->row_padding_responsive;
1844
- } elseif ( $settings->auto_spacing ) {
1845
- $placeholders['row_padding_tb_responsive'] = $placeholders['row_padding_medium'];
1846
- $placeholders['row_padding_lr_responsive'] = 0;
1847
- } else {
1848
- $placeholders['row_padding_tb_responsive'] = $placeholders['row_padding_medium'];
1849
- $placeholders['row_padding_lr_responsive'] = $placeholders['row_padding_medium'];
1850
- }
1851
-
1852
- return $placeholders;
1853
- }
1854
-
1855
  /**
1856
  * Runs row specific logic on new row settings.
1857
  *
@@ -1998,9 +1988,10 @@ final class FLBuilderModel {
1998
  * @param string $node_id A row node ID.
1999
  * @param string $cols The type of column group layout or the ID of an existing column to add.
2000
  * @param int $position The position of the new column group.
 
2001
  * @return object The new column group object.
2002
  */
2003
- static public function add_col_group( $node_id = null, $cols = '1-col', $position = false ) {
2004
  $data = self::get_layout_data();
2005
  $group_node_id = self::generate_node_id();
2006
  $parent = self::get_node( $node_id );
@@ -2082,6 +2073,13 @@ final class FLBuilderModel {
2082
  self::reorder_node( $group_node_id, $position );
2083
  }
2084
 
 
 
 
 
 
 
 
2085
  // Return the column group.
2086
  return self::get_node( $group_node_id );
2087
  }
@@ -2404,9 +2402,10 @@ final class FLBuilderModel {
2404
  * @param string $insert Either before or after.
2405
  * @param string $type The type of column(s) to insert.
2406
  * @param boolean $nested Whether these columns are nested or not.
 
2407
  * @return object
2408
  */
2409
- static public function add_cols( $col_id, $insert = 'before', $type = '1-col', $nested = false ) {
2410
  $data = self::get_layout_data();
2411
  $col = self::get_node( $col_id );
2412
  $parent = self::get_node( $col->parent );
@@ -2488,6 +2487,11 @@ final class FLBuilderModel {
2488
  // Update the layout data.
2489
  self::update_layout_data( $data );
2490
 
 
 
 
 
 
2491
  // Return the column group.
2492
  return $parent;
2493
  }
@@ -2908,6 +2912,8 @@ final class FLBuilderModel {
2908
  }
2909
  }
2910
 
 
 
2911
  return $groups;
2912
  }
2913
 
@@ -3674,6 +3680,9 @@ final class FLBuilderModel {
3674
  foreach ( $tab['sections'] as $section ) {
3675
  if ( isset( $section['fields'] ) ) {
3676
  foreach ( $section['fields'] as $name => $field ) {
 
 
 
3677
  $fields[ $name ] = $field;
3678
  }
3679
  }
@@ -3714,12 +3723,24 @@ final class FLBuilderModel {
3714
  // Get the fields.
3715
  $fields = self::get_settings_form_fields( $tabs );
3716
 
3717
- // Handle dimension fields. We have to do it this way for backwards compat
3718
- // with old margin, padding, and border fields as the settings expect margin_top
3719
- // or margin_bottom to exist instead of just the margin key.
3720
  foreach ( $fields as $name => $field ) {
 
 
 
 
 
 
 
 
 
3721
  if ( 'dimension' == $field['type'] ) {
3722
- foreach ( array( 'top', 'right', 'bottom', 'left' ) as $position ) {
 
 
 
 
 
3723
  $fields[ $name . '_' . $position ] = $field;
3724
  }
3725
  unset( $fields[ $name ] );
@@ -3733,16 +3754,30 @@ final class FLBuilderModel {
3733
  $is_multiple = isset( $field['multiple'] ) && true === $field['multiple'];
3734
  $supports_multiple = 'editor' != $field['type'] && 'service' != $field['type'];
3735
  $responsive = isset( $field['responsive'] ) && $field['responsive'] ? $field['responsive'] : false;
3736
- $responsive_name = '';
3737
 
 
 
 
 
 
 
 
 
3738
  if ( $is_multiple && $supports_multiple ) {
3739
  $defaults->$name = is_array( $default ) ? $default : array( $default );
3740
- } elseif ( $responsive ) {
3741
 
3742
  foreach ( array( 'default', 'medium', 'responsive' ) as $device ) {
3743
 
3744
- $responsive_name = $name . ( 'default' == $device ? '' : '_' . $device );
 
 
3745
 
 
 
 
 
 
3746
  if ( is_array( $responsive ) && isset( $responsive['default'] ) && isset( $responsive['default'][ $device ] ) ) {
3747
  $defaults->{ $responsive_name } = $responsive['default'][ $device ];
3748
  } elseif ( 'default' == $device ) {
@@ -3750,9 +3785,31 @@ final class FLBuilderModel {
3750
  } else {
3751
  $defaults->{ $responsive_name } = '';
3752
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3753
  }
3754
- } else {
3755
- $defaults->$name = $default;
3756
  }
3757
  }
3758
 
@@ -4194,13 +4251,14 @@ final class FLBuilderModel {
4194
  $post_id = ! $post_id ? self::get_post_id() : $post_id;
4195
  $status = ! $status ? self::get_node_status() : $status;
4196
 
4197
- // Get published data?
4198
  if ( 'published' == $status || 'revision' == get_post_type( $post_id ) ) {
4199
  if ( isset( self::$published_layout_data[ $post_id ] ) ) {
4200
  $data = self::$published_layout_data[ $post_id ];
4201
  } else {
4202
  $data = get_metadata( 'post', $post_id, '_fl_builder_data', true );
4203
  $data = self::clean_layout_data( $data );
 
4204
  self::$published_layout_data[ $post_id ] = apply_filters( 'fl_builder_get_layout_metadata', $data, $status, $post_id );
4205
  }
4206
  } elseif ( 'draft' == $status ) {
@@ -4209,6 +4267,7 @@ final class FLBuilderModel {
4209
  } else {
4210
  $data = get_metadata( 'post', $post_id, '_fl_builder_draft', true );
4211
  $data = self::clean_layout_data( $data );
 
4212
  self::$draft_layout_data[ $post_id ] = apply_filters( 'fl_builder_get_layout_metadata', $data, $status, $post_id );
4213
  }
4214
  }
@@ -5784,6 +5843,9 @@ final class FLBuilderModel {
5784
  // Get new ids for the template nodes.
5785
  $template->nodes = self::generate_new_node_ids( $template->nodes );
5786
 
 
 
 
5787
  // Get the existing layout data and settings.
5788
  $layout_data = self::get_layout_data();
5789
  $layout_settings = self::get_layout_settings();
@@ -5886,7 +5948,9 @@ final class FLBuilderModel {
5886
  foreach ( $template_data as $key => $template ) {
5887
 
5888
  // Add the main group to each template.
5889
- $template_data[ $key ]->group = $args['group'];
 
 
5890
 
5891
  // Reserialize the node data as it's expensive to store in memory.
5892
  if ( isset( $template->nodes ) ) {
@@ -5928,12 +5992,14 @@ final class FLBuilderModel {
5928
  $type = apply_filters( 'fl_builder_template_selector_data_type', $type );
5929
  $categorized = array();
5930
  $templates = array();
 
 
 
5931
  $core_categories = array(
5932
  'general' => __( 'General', 'fl-builder' ),
5933
  'landing' => __( 'Landing Pages', 'fl-builder' ),
5934
  'company' => __( 'Content Pages', 'fl-builder' ),
5935
  );
5936
- $groups = array();
5937
 
5938
  // Build the the templates array.
5939
  foreach ( self::get_templates( $type ) as $key => $template ) {
@@ -6020,6 +6086,7 @@ final class FLBuilderModel {
6020
  );
6021
  }
6022
  }
 
6023
  $template['group'][] = $group_key;
6024
  }
6025
 
1375
  $settings = $post_data['node_preview_processed_settings'];
1376
  }
1377
  } else {
1378
+ $settings = self::get_node_settings_with_defaults_merged( $node->type, $node->settings );
 
 
 
 
 
 
 
 
 
1379
  }
1380
 
1381
  return ! $filter ? $settings : apply_filters( 'fl_builder_node_settings', $settings, $node );
1382
  }
1383
 
1384
+ /**
1385
+ * Returns node settings that are merged with the defaults. In general,
1386
+ * you should use get_node_settings instead of this method unless you
1387
+ * don't want any of the other logic that it applies.
1388
+ *
1389
+ * @since 2.2
1390
+ * @param string $type A node type.
1391
+ * @param object $settings A node settings object.
1392
+ * @return object
1393
+ */
1394
+ static public function get_node_settings_with_defaults_merged( $type, $settings ) {
1395
+ $defaults = array();
1396
+
1397
+ if ( 'row' == $type ) {
1398
+ $defaults = FLBuilderModel::get_row_defaults();
1399
+ } elseif ( 'column' == $type ) {
1400
+ $defaults = FLBuilderModel::get_col_defaults();
1401
+ } elseif ( 'module' == $type ) {
1402
+ $defaults = FLBuilderModel::get_module_defaults( $settings->type );
1403
+ }
1404
+
1405
+ $settings = (object) array_merge( (array) $defaults, (array) $settings );
1406
+
1407
+ if ( 'row' == $type ) {
1408
+ $settings = FLBuilderModel::merge_nested_form_defaults( 'general', 'row', $settings );
1409
+ } elseif ( 'column' == $type ) {
1410
+ $settings = FLBuilderModel::merge_nested_form_defaults( 'general', 'col', $settings );
1411
+ } elseif ( 'module' == $type ) {
1412
+ $settings = FLBuilderModel::merge_nested_module_defaults( $settings->type, $settings );
1413
+ }
1414
+
1415
+ return $settings;
1416
+ }
1417
+
1418
  /**
1419
  * Returns node settings that have been processed with
1420
  * specific logic based on the type of node.
1677
  * @since 1.0
1678
  * @param string $cols The type of column layout to use.
1679
  * @param int $position The position of the new row.
1680
+ * @param string $module Optional. The node ID of an existing module to move to this row.
1681
  * @return object The new row object.
1682
  */
1683
+ static public function add_row( $cols = '1-col', $position = false, $module = null ) {
1684
  $data = self::get_layout_data();
1685
  $settings = self::get_row_defaults();
1686
  $row_node_id = self::generate_node_id();
1702
  }
1703
 
1704
  // Add a column group.
1705
+ $group = self::add_col_group( $row_node_id, $cols, 0 );
1706
+
1707
+ // Move an existing module to the row.
1708
+ if ( $module ) {
1709
+ $cols = self::get_nodes( 'column', $group->node );
1710
+ $col = array_shift( $cols );
1711
+ self::move_node( $module, $col->node, 0 );
1712
+ }
1713
 
1714
  // Return the updated row.
1715
  return self::get_node( $row_node_id );
1842
  return $settings;
1843
  }
1844
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1845
  /**
1846
  * Runs row specific logic on new row settings.
1847
  *
1988
  * @param string $node_id A row node ID.
1989
  * @param string $cols The type of column group layout or the ID of an existing column to add.
1990
  * @param int $position The position of the new column group.
1991
+ * @param string $module Optional. The node ID of an existing module to move to this group.
1992
  * @return object The new column group object.
1993
  */
1994
+ static public function add_col_group( $node_id = null, $cols = '1-col', $position = false, $module = null ) {
1995
  $data = self::get_layout_data();
1996
  $group_node_id = self::generate_node_id();
1997
  $parent = self::get_node( $node_id );
2073
  self::reorder_node( $group_node_id, $position );
2074
  }
2075
 
2076
+ // Move an existing module to the group.
2077
+ if ( $module ) {
2078
+ $cols = self::get_nodes( 'column', $group_node_id );
2079
+ $col = array_shift( $cols );
2080
+ self::move_node( $module, $col->node, 0 );
2081
+ }
2082
+
2083
  // Return the column group.
2084
  return self::get_node( $group_node_id );
2085
  }
2402
  * @param string $insert Either before or after.
2403
  * @param string $type The type of column(s) to insert.
2404
  * @param boolean $nested Whether these columns are nested or not.
2405
+ * @param string $module Optional. The node ID of an existing module to move to this group.
2406
  * @return object
2407
  */
2408
+ static public function add_cols( $col_id, $insert = 'before', $type = '1-col', $nested = false, $module = null ) {
2409
  $data = self::get_layout_data();
2410
  $col = self::get_node( $col_id );
2411
  $parent = self::get_node( $col->parent );
2487
  // Update the layout data.
2488
  self::update_layout_data( $data );
2489
 
2490
+ // Move an existing module to the group.
2491
+ if ( $module ) {
2492
+ self::move_node( $module, $new_col_id, 0 );
2493
+ }
2494
+
2495
  // Return the column group.
2496
  return $parent;
2497
  }
2912
  }
2913
  }
2914
 
2915
+ ksort( $groups );
2916
+
2917
  return $groups;
2918
  }
2919
 
3680
  foreach ( $tab['sections'] as $section ) {
3681
  if ( isset( $section['fields'] ) ) {
3682
  foreach ( $section['fields'] as $name => $field ) {
3683
+ if ( ! isset( $field['type'] ) ) {
3684
+ continue;
3685
+ }
3686
  $fields[ $name ] = $field;
3687
  }
3688
  }
3723
  // Get the fields.
3724
  $fields = self::get_settings_form_fields( $tabs );
3725
 
3726
+ // Handle a few special cases before getting the defaults.
 
 
3727
  foreach ( $fields as $name => $field ) {
3728
+
3729
+ // Add the root name if needed later for synthetic fields like
3730
+ // the dimension fields being synthesized below.
3731
+ $fields[ $name ]['root_name'] = $name;
3732
+ $field['root_name'] = $name;
3733
+
3734
+ // Handle dimension fields. We have to do it this way for backwards compat
3735
+ // with old margin, padding, and border fields as the settings expect margin_top
3736
+ // or margin_bottom to exist instead of just the margin key.
3737
  if ( 'dimension' == $field['type'] ) {
3738
+ if ( isset( $field['keys'] ) ) {
3739
+ $keys = array_keys( $field['keys'] );
3740
+ } else {
3741
+ $keys = array( 'top', 'right', 'bottom', 'left' );
3742
+ }
3743
+ foreach ( $keys as $position ) {
3744
  $fields[ $name . '_' . $position ] = $field;
3745
  }
3746
  unset( $fields[ $name ] );
3754
  $is_multiple = isset( $field['multiple'] ) && true === $field['multiple'];
3755
  $supports_multiple = 'editor' != $field['type'] && 'service' != $field['type'];
3756
  $responsive = isset( $field['responsive'] ) && $field['responsive'] ? $field['responsive'] : false;
 
3757
 
3758
+ // Get the default unit if this field has more than one unit.
3759
+ if ( isset( $field['units'] ) && count( $field['units'] ) > 1 ) {
3760
+ $default_unit = isset( $field['default_unit'] ) ? $field['default_unit'] : $field['units'][0];
3761
+ } else {
3762
+ $default_unit = null;
3763
+ }
3764
+
3765
+ // Set the default.
3766
  if ( $is_multiple && $supports_multiple ) {
3767
  $defaults->$name = is_array( $default ) ? $default : array( $default );
3768
+ } else {
3769
 
3770
  foreach ( array( 'default', 'medium', 'responsive' ) as $device ) {
3771
 
3772
+ if ( ! $responsive && 'default' !== $device ) {
3773
+ continue;
3774
+ }
3775
 
3776
+ $response_suffix = ( 'default' == $device ? '' : '_' . $device );
3777
+ $responsive_name = $name . $response_suffix;
3778
+ $unit_name = $field['root_name'] . $response_suffix . '_unit';
3779
+
3780
+ // Add the default value.
3781
  if ( is_array( $responsive ) && isset( $responsive['default'] ) && isset( $responsive['default'][ $device ] ) ) {
3782
  $defaults->{ $responsive_name } = $responsive['default'][ $device ];
3783
  } elseif ( 'default' == $device ) {
3785
  } else {
3786
  $defaults->{ $responsive_name } = '';
3787
  }
3788
+
3789
+ // Add the unit default value.
3790
+ if ( null !== $default_unit ) {
3791
+ if ( is_array( $responsive ) && isset( $responsive['default_unit'] ) && isset( $responsive['default_unit'][ $device ] ) ) {
3792
+ $defaults->{ $unit_name } = $responsive['default_unit'][ $device ];
3793
+ } else {
3794
+ $defaults->{ $unit_name } = $default_unit;
3795
+ }
3796
+ }
3797
+
3798
+ // Add the photo source default value.
3799
+ if ( 'photo' === $field['type'] ) {
3800
+ $defaults->{ $name . $response_suffix . '_src' } = '';
3801
+ }
3802
+
3803
+ // Add the link target and nofollow default values.
3804
+ if ( 'link' === $field['type'] ) {
3805
+ if ( isset( $field['show_target'] ) && $field['show_target'] ) {
3806
+ $defaults->{ $name . '_target' } = '_self';
3807
+ }
3808
+ if ( isset( $field['show_nofollow'] ) && $field['show_nofollow'] ) {
3809
+ $defaults->{ $name . '_nofollow' } = 'no';
3810
+ }
3811
+ }
3812
  }
 
 
3813
  }
3814
  }
3815
 
4251
  $post_id = ! $post_id ? self::get_post_id() : $post_id;
4252
  $status = ! $status ? self::get_node_status() : $status;
4253
 
4254
+ // Get layout metadata.
4255
  if ( 'published' == $status || 'revision' == get_post_type( $post_id ) ) {
4256
  if ( isset( self::$published_layout_data[ $post_id ] ) ) {
4257
  $data = self::$published_layout_data[ $post_id ];
4258
  } else {
4259
  $data = get_metadata( 'post', $post_id, '_fl_builder_data', true );
4260
  $data = self::clean_layout_data( $data );
4261
+ $data = FLBuilderSettingsCompat::filter_layout_data( $data );
4262
  self::$published_layout_data[ $post_id ] = apply_filters( 'fl_builder_get_layout_metadata', $data, $status, $post_id );
4263
  }
4264
  } elseif ( 'draft' == $status ) {
4267
  } else {
4268
  $data = get_metadata( 'post', $post_id, '_fl_builder_draft', true );
4269
  $data = self::clean_layout_data( $data );
4270
+ $data = FLBuilderSettingsCompat::filter_layout_data( $data );
4271
  self::$draft_layout_data[ $post_id ] = apply_filters( 'fl_builder_get_layout_metadata', $data, $status, $post_id );
4272
  }
4273
  }
5843
  // Get new ids for the template nodes.
5844
  $template->nodes = self::generate_new_node_ids( $template->nodes );
5845
 
5846
+ // Filter the nodes for backwards compatibility with old settings.
5847
+ $template->nodes = FLBuilderSettingsCompat::filter_layout_data( $template->nodes );
5848
+
5849
  // Get the existing layout data and settings.
5850
  $layout_data = self::get_layout_data();
5851
  $layout_settings = self::get_layout_settings();
5948
  foreach ( $template_data as $key => $template ) {
5949
 
5950
  // Add the main group to each template.
5951
+ if ( ! isset( $template_data[ $key ]->group ) ) {
5952
+ $template_data[ $key ]->group = $args['group'];
5953
+ }
5954
 
5955
  // Reserialize the node data as it's expensive to store in memory.
5956
  if ( isset( $template->nodes ) ) {
5992
  $type = apply_filters( 'fl_builder_template_selector_data_type', $type );
5993
  $categorized = array();
5994
  $templates = array();
5995
+ $groups = array();
5996
+
5997
+ // This is needed for backwards compat with the old core templates category.
5998
  $core_categories = array(
5999
  'general' => __( 'General', 'fl-builder' ),
6000
  'landing' => __( 'Landing Pages', 'fl-builder' ),
6001
  'company' => __( 'Content Pages', 'fl-builder' ),
6002
  );
 
6003
 
6004
  // Build the the templates array.
6005
  foreach ( self::get_templates( $type ) as $key => $template ) {
6086
  );
6087
  }
6088
  }
6089
+ ksort( $groups[ $group_key ]['categories'] );
6090
  $template['group'][] = $group_key;
6091
  }
6092
 
classes/class-fl-builder-module.php CHANGED
@@ -274,16 +274,29 @@ class FLBuilderModule {
274
 
275
  /**
276
  * Should be overridden by subclasses to
277
- * work with settings data before it is saved.
278
  *
279
  * @since 1.0
280
- * @param object A settings object that is going to be saved.
281
  * @return object
282
  */
283
  public function update( $settings ) {
284
  return $settings;
285
  }
286
 
 
 
 
 
 
 
 
 
 
 
 
 
 
287
  /**
288
  * Should be overridden by subclasses to work with a module before
289
  * it is deleted. Please note, this method is called when a module
274
 
275
  /**
276
  * Should be overridden by subclasses to
277
+ * work with settings data _before it is saved_.
278
  *
279
  * @since 1.0
280
+ * @param object $settings A settings object that is going to be saved.
281
  * @return object
282
  */
283
  public function update( $settings ) {
284
  return $settings;
285
  }
286
 
287
+ /**
288
+ * Should be overridden by subclasses to
289
+ * work with settings data _before it is used to display a module_.
290
+ *
291
+ * @since 2.0.3
292
+ * @param object $settings A settings object.
293
+ * @param object $helper A settings compatibility helper.
294
+ * @return object
295
+ */
296
+ public function filter_settings( $settings, $helper ) {
297
+ return $settings;
298
+ }
299
+
300
  /**
301
  * Should be overridden by subclasses to work with a module before
302
  * it is deleted. Please note, this method is called when a module
classes/class-fl-builder-settings-compat-column.php ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Settings compatibility helper for column nodes.
5
+ *
6
+ * @since 2.2
7
+ */
8
+ class FLBuilderSettingsCompatColumn extends FLBuilderSettingsCompatHelper {
9
+
10
+ /**
11
+ * Filter settings for columns.
12
+ *
13
+ * @since 2.2
14
+ * @param object $settings
15
+ * @return object
16
+ */
17
+ public function filter_settings( $settings ) {
18
+ $this->handle_opacity_inputs( $settings, 'bg_opacity', 'bg_color' );
19
+ $this->handle_opacity_inputs( $settings, 'bg_overlay_opacity', 'bg_overlay_color' );
20
+ $this->handle_opacity_inputs( $settings, 'border_opacity', 'border_color' );
21
+ $this->handle_border_inputs( $settings );
22
+ $this->handle_responsive_widths( $settings );
23
+ return $settings;
24
+ }
25
+
26
+ /**
27
+ * Updates old responsive width settings to the new
28
+ * responsive width settings with live preview.
29
+ *
30
+ * @since 2.2
31
+ * @param object $settings
32
+ * @return object
33
+ */
34
+ public function handle_responsive_widths( &$settings ) {
35
+ if ( isset( $settings->medium_size ) && 'custom' === $settings->medium_size ) {
36
+ $settings->size_medium = $settings->custom_medium_size;
37
+ unset( $settings->medium_size );
38
+ unset( $settings->custom_medium_size );
39
+ }
40
+ if ( isset( $settings->responsive_size ) && 'custom' === $settings->responsive_size ) {
41
+ $settings->size_responsive = $settings->custom_responsive_size;
42
+ unset( $settings->responsive_size );
43
+ unset( $settings->custom_responsive_size );
44
+ }
45
+ }
46
+ }
classes/class-fl-builder-settings-compat-generic.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Generic settings compatibility helper for all node types.
5
+ *
6
+ * @since 2.2
7
+ */
8
+ class FLBuilderSettingsCompatGeneric extends FLBuilderSettingsCompatHelper {
9
+
10
+ /**
11
+ * Filter settings for all node types.
12
+ *
13
+ * @since 2.2
14
+ * @param object $settings
15
+ * @return object
16
+ */
17
+ public function filter_settings( $settings ) {
18
+ return $settings;
19
+ }
20
+ }
classes/class-fl-builder-settings-compat-helper.php ADDED
@@ -0,0 +1,164 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Base class that settings compatibility helpers
5
+ * should extend.
6
+ *
7
+ * @since 2.2
8
+ */
9
+ class FLBuilderSettingsCompatHelper {
10
+
11
+ /**
12
+ * Filter a node's settings object.
13
+ *
14
+ * @since 2.2
15
+ * @param object $settings
16
+ * @return object
17
+ */
18
+ public function filter_settings( $settings ) {
19
+ return $settings;
20
+ }
21
+
22
+ /**
23
+ * Filters the settings for a module that is rendered within another
24
+ * module. An example of this would be the button module within the
25
+ * callout module. This is done so the filtering logic for the button
26
+ * module doesn't need to be duplicated in the callout module.
27
+ *
28
+ * @since 2.2
29
+ * @param object $slug The child module's slug.
30
+ * @param object $settings The parent module's settings object.
31
+ * @param array $key_map An array matching the parent setting keys to the child setting keys.
32
+ * @return void
33
+ */
34
+ public function filter_child_module_settings( $slug, &$settings, $key_map ) {
35
+
36
+ // Get a generic instance of the child module.
37
+ if ( isset( FLBuilderModel::$modules[ $slug ] ) ) {
38
+ $module = FLBuilderModel::$modules[ $slug ];
39
+ } else {
40
+ return;
41
+ }
42
+
43
+ // Make sure the child module has a settings filter method.
44
+ if ( ! method_exists( $module, 'filter_settings' ) ) {
45
+ return;
46
+ }
47
+
48
+ // Build the child settings object from the parent settings and key map.
49
+ $child_settings = new stdClass;
50
+
51
+ foreach ( $key_map as $parent_key => $child_key ) {
52
+ if ( isset( $settings->{ $parent_key } ) ) {
53
+ $child_settings->{ $child_key } = $settings->{ $parent_key };
54
+ unset( $settings->{ $parent_key } );
55
+ }
56
+ }
57
+
58
+ // Filter the child settings.
59
+ $child_settings = $module->filter_settings( $child_settings, $this );
60
+
61
+ // Add the child settings back to the parent settings using the key map.
62
+ foreach ( $key_map as $parent_key => $child_key ) {
63
+ if ( isset( $child_settings->{ $child_key } ) ) {
64
+ $settings->{ $parent_key } = $child_settings->{ $child_key };
65
+ }
66
+ }
67
+ }
68
+
69
+ /**
70
+ * Handle old animation inputs that were removed in favor of
71
+ * a single animation field.
72
+ *
73
+ * @since 2.2
74
+ * @param object $settings
75
+ * @return void
76
+ */
77
+ public function handle_animation_inputs( &$settings ) {
78
+
79
+ if ( ! isset( $settings->animation ) || is_array( $settings->animation ) || ! isset( $settings->animation_delay ) ) {
80
+ return;
81
+ }
82
+
83
+ $keys = array(
84
+ 'slide-left' => 'fade-right',
85
+ 'slide-right' => 'fade-left',
86
+ 'slide-up' => 'fade-up',
87
+ 'slide-down' => 'fade-down',
88
+ );
89
+
90
+ if ( isset( $keys[ $settings->animation ] ) ) {
91
+ $settings->animation = $keys[ $settings->animation ];
92
+ }
93
+
94
+ $settings->animation = array(
95
+ 'style' => $settings->animation,
96
+ 'delay' => $settings->animation_delay,
97
+ );
98
+
99
+ unset( $settings->animation_delay );
100
+ }
101
+
102
+ /**
103
+ * Handle old opacity inputs that were removed in favor of
104
+ * the alpha slider in the color picker.
105
+ *
106
+ * @since 2.2
107
+ * @param object $settings
108
+ * @return void
109
+ */
110
+ public function handle_opacity_inputs( &$settings, $opacity_key, $color_key ) {
111
+
112
+ if ( ! isset( $settings->$opacity_key ) || ! is_numeric( $settings->$opacity_key ) || empty( $settings->$color_key ) ) {
113
+ return;
114
+ }
115
+
116
+ if ( (int) $settings->$opacity_key < 100 && ! stristr( $settings->$color_key, 'rgb' ) ) {
117
+ $settings->$color_key = 'rgba(' . implode( ',', FLBuilderColor::hex_to_rgb( $settings->$color_key ) ) . ',' . $settings->$opacity_key / 100 . ')';
118
+ }
119
+
120
+ unset( $settings->$opacity_key );
121
+ }
122
+
123
+ /**
124
+ * Handle old border inputs that were removed in favor of
125
+ * the new border setting.
126
+ *
127
+ * @since 2.2
128
+ * @param object $settings
129
+ * @return void
130
+ */
131
+ public function handle_border_inputs( &$settings ) {
132
+
133
+ if ( isset( $settings->border ) && is_array( $settings->border ) ) {
134
+ return;
135
+ }
136
+ if ( ! isset( $settings->border_type ) ) {
137
+ return;
138
+ }
139
+
140
+ foreach ( array( '', '_medium', '_responsive' ) as $breakpoint ) {
141
+
142
+ if ( isset( $settings->{ "border_top$breakpoint" } ) ) {
143
+
144
+ $settings->{ "border$breakpoint" } = array(
145
+ 'style' => isset( $settings->{ "border_type$breakpoint" } ) ? $settings->{ "border_type$breakpoint" } : '',
146
+ 'color' => isset( $settings->{ "border_color$breakpoint" } ) ? $settings->{ "border_color$breakpoint" } : '',
147
+ 'width' => array(
148
+ 'top' => $settings->{ "border_top$breakpoint" },
149
+ 'right' => $settings->{ "border_right$breakpoint" },
150
+ 'bottom' => $settings->{ "border_bottom$breakpoint" },
151
+ 'left' => $settings->{ "border_left$breakpoint" },
152
+ ),
153
+ );
154
+
155
+ unset( $settings->{ "border_type$breakpoint" } );
156
+ unset( $settings->{ "border_color$breakpoint" } );
157
+ unset( $settings->{ "border_top$breakpoint" } );
158
+ unset( $settings->{ "border_right$breakpoint" } );
159
+ unset( $settings->{ "border_bottom$breakpoint" } );
160
+ unset( $settings->{ "border_left$breakpoint" } );
161
+ }
162
+ }
163
+ }
164
+ }
classes/class-fl-builder-settings-compat-module.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Settings compatibility helper for all module nodes.
5
+ *
6
+ * @since 2.2
7
+ */
8
+ class FLBuilderSettingsCompatModule extends FLBuilderSettingsCompatHelper {
9
+
10
+ /**
11
+ * Filter settings for modules.
12
+ *
13
+ * @since 2.2
14
+ * @param object $settings
15
+ * @return object
16
+ */
17
+ public function filter_settings( $settings ) {
18
+ $this->handle_animation_inputs( $settings );
19
+ return $settings;
20
+ }
21
+ }
classes/class-fl-builder-settings-compat-row.php ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Settings compatibility helper for row nodes.
5
+ *
6
+ * @since 2.2
7
+ */
8
+ class FLBuilderSettingsCompatRow extends FLBuilderSettingsCompatHelper {
9
+
10
+ /**
11
+ * Filter settings for rows.
12
+ *
13
+ * @since 2.2
14
+ * @param object $settings
15
+ * @return object
16
+ */
17
+ public function filter_settings( $settings ) {
18
+ $this->handle_opacity_inputs( $settings, 'bg_opacity', 'bg_color' );
19
+ $this->handle_opacity_inputs( $settings, 'bg_overlay_opacity', 'bg_overlay_color' );
20
+ $this->handle_opacity_inputs( $settings, 'border_opacity', 'border_color' );
21
+ $this->handle_border_inputs( $settings );
22
+ return $settings;
23
+ }
24
+ }
classes/class-fl-builder-settings-compat.php ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Manages settings compatibility helpers. Those allow us to make
5
+ * changes to node settings without breaking compatibility with
6
+ * existing nodes that have already been saved to the database.
7
+ *
8
+ * @since 2.2
9
+ */
10
+ final class FLBuilderSettingsCompat {
11
+
12
+ /**
13
+ * An array of registered compatibility helpers.
14
+ *
15
+ * @since 2.2
16
+ * @var array $helpers
17
+ */
18
+ static private $helpers = array();
19
+
20
+ /**
21
+ * Initialize.
22
+ *
23
+ * @since 2.2
24
+ * @return void
25
+ */
26
+ static public function init() {
27
+ require_once FL_BUILDER_DIR . 'classes/class-fl-builder-settings-compat-helper.php';
28
+ require_once FL_BUILDER_DIR . 'classes/class-fl-builder-settings-compat-generic.php';
29
+ require_once FL_BUILDER_DIR . 'classes/class-fl-builder-settings-compat-row.php';
30
+ require_once FL_BUILDER_DIR . 'classes/class-fl-builder-settings-compat-column.php';
31
+ require_once FL_BUILDER_DIR . 'classes/class-fl-builder-settings-compat-module.php';
32
+
33
+ self::register_helper( 'generic', 'FLBuilderSettingsCompatGeneric' );
34
+ self::register_helper( 'row', 'FLBuilderSettingsCompatRow' );
35
+ self::register_helper( 'column', 'FLBuilderSettingsCompatColumn' );
36
+ self::register_helper( 'module', 'FLBuilderSettingsCompatModule' );
37
+ }
38
+
39
+ /**
40
+ * Registers a compatibility helper for a node.
41
+ *
42
+ * @since 2.2
43
+ * @param string $type
44
+ * @param string $class
45
+ * @return void
46
+ */
47
+ static public function register_helper( $type, $class ) {
48
+ self::$helpers[ $type ] = new $class;
49
+ }
50
+
51
+ /**
52
+ * Loops through layout data and ensures node settings
53
+ * are backwards compatible.
54
+ *
55
+ * @since 2.2
56
+ * @param object data
57
+ * @return object
58
+ */
59
+ static public function filter_layout_data( $data ) {
60
+ foreach ( $data as $node_id => $node ) {
61
+ if ( isset( $node->settings ) && is_object( $node->settings ) ) {
62
+ $data[ $node_id ]->settings = self::filter_node_settings( $node->type, $node->settings );
63
+ }
64
+ }
65
+ return $data;
66
+ }
67
+
68
+ /**
69
+ * Ensures settings are backwards compatible for a single node.
70
+ *
71
+ * @since 2.2
72
+ * @param string $type
73
+ * @param object $settings
74
+ * @return object
75
+ */
76
+ static public function filter_node_settings( $type, $settings ) {
77
+
78
+ // Make sure the defaults are merged.
79
+ $settings = FLBuilderModel::get_node_settings_with_defaults_merged( $type, $settings );
80
+
81
+ // Filter with the generic helper for all node types.
82
+ $settings = self::$helpers['generic']->filter_settings( $settings );
83
+
84
+ // Filter with a node specific helper if one is available.
85
+ $helper = isset( self::$helpers[ $type ] ) ? self::$helpers[ $type ] : null;
86
+
87
+ if ( $helper ) {
88
+ $settings = $helper->filter_settings( $settings );
89
+ }
90
+
91
+ // Filter with a module specific helper if one is available.
92
+ if ( 'module' === $type && isset( FLBuilderModel::$modules[ $settings->type ] ) ) {
93
+ $module = FLBuilderModel::$modules[ $settings->type ];
94
+ $settings = $module->filter_settings( $settings, self::$helpers['module'] );
95
+ }
96
+
97
+ return $settings;
98
+ }
99
+ }
100
+
101
+ FLBuilderSettingsCompat::init();
classes/class-fl-builder-settings-presets.php ADDED
@@ -0,0 +1,104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class FLBuilderSettingsPresets {
3
+
4
+ static private $presets = array();
5
+
6
+ static public function init() {
7
+
8
+ add_filter( 'fl_builder_shared_option_sets', 'FLBuilderSettingsPresets::filter_shared_option_sets' );
9
+ add_filter( 'fl_builder_register_settings_form', 'FLBuilderSettingsPresets::filter_settings_form' );
10
+
11
+ do_action( 'fl_register_presets' );
12
+ }
13
+
14
+ /**
15
+ * Register a new preset for a given type string
16
+ *
17
+ * @param String $type - A string identifier of what kind of preset this will be.
18
+ * @param Array $args - The meta and settings for the preset.
19
+ * @return void
20
+ */
21
+ static public function register( $type = '', $args = array() ) {
22
+ $defaults = array(
23
+ 'name' => '',
24
+ 'label' => __( 'Untitled Preset', 'fl-builder' ),
25
+ 'type' => $type,
26
+ 'settings' => array(), /* the settings to set when preset is selected */
27
+ 'data' => array(), /* arbitrary data to pass along to the frontend */
28
+ );
29
+ $args = wp_parse_args( $args, $defaults );
30
+ $name = $args['name'];
31
+ self::$presets[ $type ][ $name ] = $args;
32
+ }
33
+
34
+ /**
35
+ * Getter method for self::$presets;
36
+ *
37
+ * @return Array
38
+ */
39
+ static public function get_presets() {
40
+ return self::$presets;
41
+ }
42
+
43
+ /**
44
+ * Create option sets for a specified preview $type
45
+ *
46
+ * @param String $type
47
+ * @return Array
48
+ */
49
+ static public function get_preset_options( $type ) {
50
+ $options = array(
51
+ '' => __( 'Select A Preset', 'fl-builder' ),
52
+ );
53
+ if ( $type ) {
54
+ $presets = self::$presets[ $type ];
55
+ foreach ( $presets as $preset ) {
56
+ $handle = $preset['name'];
57
+ $label = $preset['label'];
58
+ $options[ $handle ] = $label;
59
+ }
60
+ }
61
+ return $options;
62
+ }
63
+
64
+ /**
65
+ * Create option sets for each preset type and add to FLBuilderConfig.optionSets
66
+ *
67
+ * @param Array $option_sets - previously set option sets
68
+ * @return Array
69
+ */
70
+ static public function filter_shared_option_sets( $option_sets ) {
71
+ foreach ( self::$presets as $type => $set ) {
72
+ $option_sets[ $type . '-presets' ] = self::get_preset_options( $type );
73
+ }
74
+
75
+ return $option_sets;
76
+ }
77
+
78
+ /**
79
+ * Filter settings forms and set the refresh type for preset fields to 'none'
80
+ *
81
+ * @param Array $form
82
+ * @return Array
83
+ */
84
+ static public function filter_settings_form( $form ) {
85
+
86
+ if ( isset( $form['tabs'] ) ) {
87
+ foreach ( $form['tabs'] as $i => $tab ) {
88
+
89
+ foreach ( $tab['sections'] as $j => $section ) {
90
+ foreach ( $section['fields'] as $k => $field ) {
91
+
92
+ if ( 'preset' === $field['type'] ) {
93
+ $form['tabs'][ $i ]['sections'][ $j ]['fields'][ $k ]['preview'] = array(
94
+ 'type' => 'none',
95
+ );
96
+ }
97
+ }
98
+ }
99
+ }
100
+ }
101
+ return $form;
102
+ }
103
+ }
104
+ FLBuilderSettingsPresets::init();
classes/class-fl-builder-ui-content-panel.php CHANGED
@@ -159,6 +159,7 @@ class FLBuilderUIContentPanel {
159
  $data['views'][] = array(
160
  'handle' => $slug,
161
  'name' => $group['name'],
 
162
  'query' => array(
163
  'kind' => 'template',
164
  'type' => 'core',
@@ -177,6 +178,7 @@ class FLBuilderUIContentPanel {
177
  'handle' => $cat_slug,
178
  'name' => $category['name'],
179
  'isSubItem' => true,
 
180
  'query' => array(
181
  'kind' => 'template',
182
  'type' => 'core',
@@ -230,6 +232,7 @@ class FLBuilderUIContentPanel {
230
  $data['views'][] = array(
231
  'handle' => $slug,
232
  'name' => $group['name'],
 
233
  'query' => array(
234
  'kind' => 'template',
235
  'type' => 'core',
@@ -248,6 +251,7 @@ class FLBuilderUIContentPanel {
248
  'handle' => $cat_slug,
249
  'name' => $category['name'],
250
  'isSubItem' => true,
 
251
  'query' => array(
252
  'kind' => 'template',
253
  'type' => 'core',
159
  $data['views'][] = array(
160
  'handle' => $slug,
161
  'name' => $group['name'],
162
+ 'hasChildren' => count( $group['categories'] ) > 1,
163
  'query' => array(
164
  'kind' => 'template',
165
  'type' => 'core',
178
  'handle' => $cat_slug,
179
  'name' => $category['name'],
180
  'isSubItem' => true,
181
+ 'parent' => $slug,
182
  'query' => array(
183
  'kind' => 'template',
184
  'type' => 'core',
232
  $data['views'][] = array(
233
  'handle' => $slug,
234
  'name' => $group['name'],
235
+ 'hasChildren' => count( $group['categories'] ) > 1,
236
  'query' => array(
237
  'kind' => 'template',
238
  'type' => 'core',
251
  'handle' => $cat_slug,
252
  'name' => $category['name'],
253
  'isSubItem' => true,
254
+ 'parent' => $slug,
255
  'query' => array(
256
  'kind' => 'template',
257
  'type' => 'core',
classes/class-fl-builder-ui-settings-forms.php CHANGED
@@ -263,6 +263,11 @@ class FLBuilderUISettingsForms {
263
  */
264
  $field = apply_filters( 'fl_builder_field_js_config', $field, $field_key, $form_key );
265
 
 
 
 
 
 
266
  // Convert class to className for JS compat.
267
  if ( isset( $field['class'] ) ) {
268
  $field['className'] = $field['class'];
@@ -348,6 +353,10 @@ class FLBuilderUISettingsForms {
348
  continue;
349
  }
350
 
 
 
 
 
351
  if ( ! isset( $editables[ $module->slug ] ) ) {
352
  $editables[ $module->slug ] = array();
353
  }
@@ -357,6 +366,7 @@ class FLBuilderUISettingsForms {
357
  'field' => array(
358
  'name' => $key,
359
  'type' => $field['type'],
 
360
  ),
361
  );
362
  }
@@ -477,6 +487,7 @@ class FLBuilderUISettingsForms {
477
  return false;
478
  }
479
 
 
480
  $filename = wp_basename( $url );
481
  $base_url = str_replace( $filename, '', $url );
482
  $meta = wp_get_attachment_metadata( $id );
@@ -515,6 +526,7 @@ class FLBuilderUISettingsForms {
515
  'id' => $id,
516
  'url' => $url,
517
  'filename' => $filename,
 
518
  'sizes' => apply_filters( 'fl_builder_photo_sizes_select', $sizes ),
519
  );
520
  }
@@ -654,6 +666,9 @@ class FLBuilderUISettingsForms {
654
  // Render legacy custom fields.
655
  if ( isset( $data['fields'] ) ) {
656
  foreach ( $data['fields'] as $name ) {
 
 
 
657
  ob_start();
658
  self::render_settings_field( $name, (array) $fields[ $name ], $settings );
659
  $response['fields'][ $name ] = ob_get_clean();
@@ -836,6 +851,11 @@ class FLBuilderUISettingsForms {
836
  * @since 2.0
837
  */
838
  $field = apply_filters( 'fl_builder_render_settings_field', $field, $name, $settings ); // Allow field settings filtering first
 
 
 
 
 
839
  $i = null;
840
  $is_multiple = isset( $field['multiple'] ) && true === (bool) $field['multiple'];
841
  $supports_multiple = 'editor' != $field['type'] && 'service' != $field['type'];
263
  */
264
  $field = apply_filters( 'fl_builder_field_js_config', $field, $field_key, $form_key );
265
 
266
+ // Bail if the field has no type.
267
+ if ( ! isset( $field['type'] ) ) {
268
+ return;
269
+ }
270
+
271
  // Convert class to className for JS compat.
272
  if ( isset( $field['class'] ) ) {
273
  $field['className'] = $field['class'];
353
  continue;
354
  }
355
 
356
+ if ( isset( $field['inline_editor'] ) && ! $field['inline_editor'] ) {
357
+ continue;
358
+ }
359
+
360
  if ( ! isset( $editables[ $module->slug ] ) ) {
361
  $editables[ $module->slug ] = array();
362
  }
366
  'field' => array(
367
  'name' => $key,
368
  'type' => $field['type'],
369
+ 'toolbar' => isset( $field['inline_editor'] ) ? $field['inline_editor'] : null,
370
  ),
371
  );
372
  }
487
  return false;
488
  }
489
 
490
+ $post = get_post( $id );
491
  $filename = wp_basename( $url );
492
  $base_url = str_replace( $filename, '', $url );
493
  $meta = wp_get_attachment_metadata( $id );
526
  'id' => $id,
527
  'url' => $url,
528
  'filename' => $filename,
529
+ 'caption' => $post->post_excerpt,
530
  'sizes' => apply_filters( 'fl_builder_photo_sizes_select', $sizes ),
531
  );
532
  }
666
  // Render legacy custom fields.
667
  if ( isset( $data['fields'] ) ) {
668
  foreach ( $data['fields'] as $name ) {
669
+ if ( ! isset( $fields[ $name ] ) ) {
670
+ continue;
671
+ }
672
  ob_start();
673
  self::render_settings_field( $name, (array) $fields[ $name ], $settings );
674
  $response['fields'][ $name ] = ob_get_clean();
851
  * @since 2.0
852
  */
853
  $field = apply_filters( 'fl_builder_render_settings_field', $field, $name, $settings ); // Allow field settings filtering first
854
+
855
+ if ( ! isset( $field['type'] ) ) {
856
+ return;
857
+ }
858
+
859
  $i = null;
860
  $is_multiple = isset( $field['multiple'] ) && true === (bool) $field['multiple'];
861
  $supports_multiple = 'editor' != $field['type'] && 'service' != $field['type'];
classes/class-fl-builder-wp-blocks-layout.php CHANGED
@@ -14,10 +14,10 @@ final class FLBuilderWPBlocksLayout {
14
  static public function init() {
15
  // Actions
16
  add_action( 'current_screen', __CLASS__ . '::init_template' );
17
- add_action( 'admin_enqueue_scripts', __CLASS__ . '::update_legacy_post', 1 );
18
  add_action( 'pre_post_update', __CLASS__ . '::disable_builder_on_post_update', 10, 2 );
19
 
20
  // Filters
 
21
  add_filter( 'fl_builder_editor_content', __CLASS__ . '::filter_editor_content' );
22
  add_filter( 'fl_builder_migrated_post_content', __CLASS__ . '::filter_migrated_post_content' );
23
  }
@@ -61,15 +61,17 @@ final class FLBuilderWPBlocksLayout {
61
  * Updates posts being edited in the admin that we're built
62
  * using Beaver Builder before WordPress blocks existed.
63
  *
 
 
 
 
64
  * @since 2.1
65
- * @return void
 
 
66
  */
67
- static public function update_legacy_post() {
68
- global $pagenow, $post;
69
-
70
- if ( 'post.php' !== $pagenow || ! is_object( $post ) ) {
71
- return;
72
- } else {
73
  $enabled = FLBuilderModel::is_builder_enabled( $post->ID );
74
  $blocks = preg_match( '/<!-- wp:(.*) \/?-->/', $post->post_content );
75
 
@@ -86,6 +88,8 @@ final class FLBuilderWPBlocksLayout {
86
  ) );
87
  }
88
  }
 
 
89
  }
90
 
91
  /**
14
  static public function init() {
15
  // Actions
16
  add_action( 'current_screen', __CLASS__ . '::init_template' );
 
17
  add_action( 'pre_post_update', __CLASS__ . '::disable_builder_on_post_update', 10, 2 );
18
 
19
  // Filters
20
+ add_action( 'block_editor_preload_paths', __CLASS__ . '::update_legacy_post', 10, 2 );
21
  add_filter( 'fl_builder_editor_content', __CLASS__ . '::filter_editor_content' );
22
  add_filter( 'fl_builder_migrated_post_content', __CLASS__ . '::filter_migrated_post_content' );
23
  }
61
  * Updates posts being edited in the admin that we're built
62
  * using Beaver Builder before WordPress blocks existed.
63
  *
64
+ * We do this on the `block_editor_preload_paths` filter because
65
+ * that is the earliest we can hook into updating the post before
66
+ * it is preloaded by the REST API.
67
+ *
68
  * @since 2.1
69
+ * @param array $paths
70
+ * @param object $post
71
+ * @return array
72
  */
73
+ static public function update_legacy_post( $paths, $post ) {
74
+ if ( is_object( $post ) ) {
 
 
 
 
75
  $enabled = FLBuilderModel::is_builder_enabled( $post->ID );
76
  $blocks = preg_match( '/<!-- wp:(.*) \/?-->/', $post->post_content );
77
 
88
  ) );
89
  }
90
  }
91
+
92
+ return $paths;
93
  }
94
 
95
  /**
classes/class-fl-builder.php CHANGED
@@ -68,7 +68,7 @@ final class FLBuilder {
68
  * @since 2.1
69
  */
70
  static public $fa4_url = 'https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css';
71
- static public $fa5_pro_url = 'https://pro.fontawesome.com/releases/v5.6.1/css/all.css';
72
 
73
  /**
74
  * Initializes hooks.
@@ -87,7 +87,6 @@ final class FLBuilder {
87
  add_action( 'wp_enqueue_scripts', __CLASS__ . '::enqueue_all_layouts_styles_scripts' );
88
  add_action( 'wp_head', __CLASS__ . '::render_custom_css_for_editing', 999 );
89
  add_action( 'admin_bar_menu', __CLASS__ . '::admin_bar_menu', 999 );
90
- add_action( 'wp_footer', __CLASS__ . '::include_jquery' );
91
  add_action( 'wp_footer', __CLASS__ . '::render_ui' );
92
 
93
  /* Filters */
@@ -485,6 +484,16 @@ final class FLBuilder {
485
  }
486
  }
487
  }
 
 
 
 
 
 
 
 
 
 
488
  }
489
 
490
  // Enqueue required module CSS and JS
@@ -500,7 +509,7 @@ final class FLBuilder {
500
  foreach ( $module->js as $handle => $props ) {
501
  wp_enqueue_script( $handle, $props[0], $props[1], $props[2], $props[3] );
502
  }
503
- if ( ! empty( $module->settings->animation ) ) {
504
  wp_enqueue_script( 'jquery-waypoints' );
505
  }
506
  }
@@ -763,19 +772,6 @@ final class FLBuilder {
763
  wp_add_inline_style( 'admin-bar', '#wp-admin-bar-fl-builder-frontend-edit-link .ab-icon:before { content: "\f116" !important; top: 2px; margin-right: 3px; }' );
764
  }
765
 
766
- /**
767
- * Include a jQuery fallback script when the builder is
768
- * enabled for a page.
769
- *
770
- * @since 1.0
771
- * @return void
772
- */
773
- static public function include_jquery() {
774
- if ( FLBuilderModel::is_builder_enabled() ) {
775
- include FL_BUILDER_DIR . 'includes/jquery.php';
776
- }
777
- }
778
-
779
  /**
780
  * Adds builder classes to the body class.
781
  *
@@ -975,6 +971,17 @@ final class FLBuilder {
975
  'items' => array(),
976
  );
977
 
 
 
 
 
 
 
 
 
 
 
 
978
  if ( ! $is_lite && ! $is_user_template && ( 'enabled' == $enabled_templates || 'user' == $enabled_templates ) ) {
979
  $tools_view['items'][10] = array(
980
  'label' => __( 'Save Template', 'fl-builder' ),
@@ -997,6 +1004,13 @@ final class FLBuilder {
997
  'accessory' => $key_shortcuts['previewLayout']['keyLabel'],
998
  );
999
 
 
 
 
 
 
 
 
1000
  $tools_view['items'][40] = array(
1001
  'type' => 'separator',
1002
  );
@@ -1193,6 +1207,10 @@ final class FLBuilder {
1193
  'label' => _x( 'Toggle Preview Mode', 'Keyboard action to toggle preview mode', 'fl-builder' ),
1194
  'keyCode' => 'p',
1195
  ),
 
 
 
 
1196
  'showGlobalSettings' => array(
1197
  'label' => _x( 'Open Global Settings', 'Keyboard action to open the global settings panel', 'fl-builder' ),
1198
  'keyCode' => 'mod+u',
@@ -1317,15 +1335,35 @@ final class FLBuilder {
1317
  * @return void
1318
  */
1319
  static public function render_ui_bar_buttons() {
1320
- $help_button = FLBuilderModel::get_help_button_settings();
1321
- $simple_ui = ! FLBuilderUserAccess::current_user_can( 'unrestricted_editing' );
1322
  $should_display_search = ! FLBuilderModel::is_post_user_template( 'module' ) && ! $simple_ui;
1323
-
1324
  $add_btn_svg = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="24" height="24"><rect x="0" fill="none" width="24" height="24" /><g><path d="M17 9v2h-6v6H9v-6H3V9h6V3h2v6h6z"/></g></svg>';
1325
-
1326
  $notifications = FLBuilderNotifications::get_notifications();
 
 
 
 
 
 
 
 
 
 
 
 
1327
 
1328
  $buttons = apply_filters( 'fl_builder_ui_bar_buttons', array(
 
 
 
 
 
 
 
 
 
 
1329
  'upgrade' => array(
1330
  'label' => __( 'Upgrade Today', 'fl-builder' ) . ' <i class="fas fa-external-link-alt"></i>',
1331
  'show' => true === FL_BUILDER_LITE,
@@ -1367,7 +1405,17 @@ final class FLBuilder {
1367
  echo ' ' . $button['class'];
1368
  }
1369
 
1370
- echo '">' . $button['label'] . '</button>';
 
 
 
 
 
 
 
 
 
 
1371
 
1372
  $i++;
1373
  }
@@ -1380,6 +1428,7 @@ final class FLBuilder {
1380
  include FL_BUILDER_DIR . 'img/svg/bell-active.svg';
1381
  echo '</button>';
1382
  }
 
1383
  echo '</div>';
1384
  }
1385
 
@@ -1423,7 +1472,7 @@ final class FLBuilder {
1423
  self::enqueue_layout_styles_scripts_by_id( $query_post->ID );
1424
 
1425
  // Print the styles if we are outside of the head tag.
1426
- if ( ! doing_action( 'wp_enqueue_scripts' ) ) {
1427
  wp_print_styles();
1428
  }
1429
 
@@ -1870,12 +1919,31 @@ final class FLBuilder {
1870
  $attrs['class'][] = 'fl-row-align-' . $row->settings->content_alignment;
1871
  }
1872
  }
1873
- if ( in_array( $row->settings->bg_type, $overlay_bgs ) && ! empty( $row->settings->bg_overlay_color ) ) {
1874
- $attrs['class'][] = 'fl-row-bg-overlay';
 
 
 
 
 
 
 
 
 
 
 
 
1875
  }
1876
  if ( ! empty( $row->settings->responsive_display ) ) {
1877
  $attrs['class'][] = 'fl-visible-' . $row->settings->responsive_display;
1878
  }
 
 
 
 
 
 
 
1879
  if ( ! empty( $custom_class ) ) {
1880
  $attrs['class'][] = trim( esc_attr( $custom_class ) );
1881
  }
@@ -1885,6 +1953,9 @@ final class FLBuilder {
1885
  if ( $active && $has_rules ) {
1886
  $attrs['class'][] = 'fl-node-has-rules';
1887
  }
 
 
 
1888
 
1889
  // Data
1890
  if ( 'parallax' == $row->settings->bg_type && ! empty( $row->settings->bg_parallax_image_src ) ) {
@@ -1997,7 +2068,7 @@ final class FLBuilder {
1997
  }
1998
  }
1999
  }
2000
- if ( isset( $col->settings->responsive_size ) && 'custom' == $col->settings->responsive_size ) {
2001
  if ( ! in_array( 'fl-col-group-custom-width', $attrs['class'] ) ) {
2002
  $attrs['class'][] = 'fl-col-group-custom-width';
2003
  }
@@ -2068,12 +2139,23 @@ final class FLBuilder {
2068
  if ( count( $nested ) > 0 ) {
2069
  $attrs['class'][] = 'fl-col-has-cols';
2070
  }
2071
- if ( in_array( $col->settings->bg_type, $overlay_bgs ) && ! empty( $col->settings->bg_overlay_color ) ) {
2072
- $attrs['class'][] = 'fl-col-bg-overlay';
 
 
 
 
2073
  }
2074
  if ( ! empty( $col->settings->responsive_display ) ) {
2075
  $attrs['class'][] = 'fl-visible-' . $col->settings->responsive_display;
2076
  }
 
 
 
 
 
 
 
2077
  if ( ! empty( $custom_class ) ) {
2078
  $attrs['class'][] = trim( esc_attr( $custom_class ) );
2079
  }
@@ -2170,7 +2252,7 @@ final class FLBuilder {
2170
  // Module
2171
  $class = get_class( FLBuilderModel::$modules[ $type ] );
2172
  $module = new $class();
2173
- $module->settings = $settings;
2174
 
2175
  // Shorthand reference to the module's id.
2176
  $id = $module->node;
@@ -2219,9 +2301,12 @@ final class FLBuilder {
2219
  if ( ! empty( $module->settings->responsive_display ) ) {
2220
  $attrs['class'][] = 'fl-visible-' . $module->settings->responsive_display;
2221
  }
2222
- if ( ! empty( $module->settings->animation ) && is_string( $module->settings->animation ) ) {
2223
- $attrs['class'][] = 'fl-animation fl-' . $module->settings->animation;
2224
- $attrs['data-animation-delay'][] = $module->settings->animation_delay;
 
 
 
2225
  }
2226
  if ( ! empty( $custom_class ) ) {
2227
  $attrs['class'][] = trim( esc_attr( $custom_class ) );
@@ -2269,11 +2354,12 @@ final class FLBuilder {
2269
  // Module
2270
  $class = get_class( FLBuilderModel::$modules[ $type ] );
2271
  $module = new $class();
2272
- $module->settings = $settings;
2273
 
2274
  // CSS
2275
  ob_start();
2276
  include $module->dir . 'includes/frontend.css.php';
 
2277
  $css = ob_get_clean();
2278
 
2279
  echo apply_filters( 'fl_builder_render_module_css', $css, $module, $id );
@@ -2317,8 +2403,9 @@ final class FLBuilder {
2317
  * @param bool $include_global
2318
  * @return string
2319
  */
 
2320
  static public function render_css( $include_global = true ) {
2321
- // Get info on the new file.
2322
  $nodes = FLBuilderModel::get_categorized_nodes();
2323
  $node_status = FLBuilderModel::get_node_status();
2324
  $global_settings = FLBuilderModel::get_global_settings();
@@ -2338,8 +2425,11 @@ final class FLBuilder {
2338
  foreach ( $nodes['rows'] as $row ) {
2339
 
2340
  // Instance row css
 
 
2341
  ob_start();
2342
  include FL_BUILDER_DIR . 'includes/row-css.php';
 
2343
  $css .= ob_get_clean();
2344
 
2345
  // Instance row margins
@@ -2348,16 +2438,19 @@ final class FLBuilder {
2348
  // Instance row padding
2349
  $css .= self::render_row_padding( $row );
2350
 
2351
- // Instance row border
2352
- $css .= self::render_row_border( $row );
2353
  }
2354
 
2355
  // Loop through the columns.
2356
  foreach ( $nodes['columns'] as $col ) {
2357
 
2358
  // Instance column css
 
 
2359
  ob_start();
2360
  include FL_BUILDER_DIR . 'includes/column-css.php';
 
2361
  $css .= ob_get_clean();
2362
 
2363
  // Instance column margins
@@ -2366,11 +2459,8 @@ final class FLBuilder {
2366
  // Instance column padding
2367
  $css .= self::render_column_padding( $col );
2368
 
2369
- // Instance column border
2370
- $css .= self::render_column_border( $col );
2371
-
2372
- // Get the modules in this column.
2373
- $modules = FLBuilderModel::get_modules( $col );
2374
  }
2375
 
2376
  // Loop through the modules.
@@ -2408,6 +2498,7 @@ final class FLBuilder {
2408
  self::$enqueued_module_css_assets[] = $id;
2409
  ob_start();
2410
  include $file;
 
2411
  $css .= ob_get_clean();
2412
  }
2413
 
@@ -2417,6 +2508,14 @@ final class FLBuilder {
2417
  if ( ! isset( $global_settings->auto_spacing ) || $global_settings->auto_spacing ) {
2418
  $css .= self::render_responsive_module_margins( $module );
2419
  }
 
 
 
 
 
 
 
 
2420
  }
2421
 
2422
  // Custom Global CSS (included here for proper specificity)
@@ -2483,12 +2582,14 @@ final class FLBuilder {
2483
  array( 'row_margins', '.fl-row-content-wrap { margin: ' ),
2484
  array( 'row_padding', '.fl-row-content-wrap { padding: ' ),
2485
  array( 'row_width', '.fl-row-fixed-width { max-width: ' ),
 
 
2486
  array( 'module_margins', '.fl-module-content { margin: ' ),
2487
  ) as $data ) {
2488
  if ( '' !== $global_settings->{ $data[0] } ) {
2489
  $value = preg_replace( self::regex( 'css_unit' ), '', strtolower( $global_settings->{ $data[0] } ) );
2490
  $css .= $data[1] . esc_attr( $value );
2491
- $css .= ( is_numeric( $value ) ) ? ( 'px; }' ) : ( '; }' );
2492
  }
2493
  }
2494
 
@@ -2498,19 +2599,21 @@ final class FLBuilder {
2498
  // Medium devices
2499
  $css .= '@media (max-width: ' . $global_settings->medium_breakpoint . 'px) { ';
2500
 
2501
- // Core medium layout css
2502
- $css .= fl_builder_filesystem()->file_get_contents( FL_BUILDER_DIR . '/css/fl-builder-layout-medium.css' );
2503
 
2504
- // Global node medium css
2505
  foreach ( array(
2506
  array( 'row_margins_medium', '.fl-row[data-node] > .fl-row-content-wrap { margin: ' ),
2507
  array( 'row_padding_medium', '.fl-row[data-node] > .fl-row-content-wrap { padding: ' ),
 
 
2508
  array( 'module_margins_medium', '.fl-module[data-node] > .fl-module-content { margin: ' ),
2509
  ) as $data ) {
2510
  if ( '' !== $global_settings->{ $data[0] } ) {
2511
  $value = preg_replace( self::regex( 'css_unit' ), '', strtolower( $global_settings->{ $data[0] } ) );
2512
  $css .= $data[1] . esc_attr( $value );
2513
- $css .= ( is_numeric( $value ) ) ? ( 'px; }' ) : ( '; }' );
2514
  }
2515
  }
2516
 
@@ -2519,24 +2622,26 @@ final class FLBuilder {
2519
  // Responsive devices
2520
  $css .= '@media (max-width: ' . $global_settings->responsive_breakpoint . 'px) { ';
2521
 
2522
- // Core responsive layout css
2523
- $css .= fl_builder_filesystem()->file_get_contents( FL_BUILDER_DIR . '/css/fl-builder-layout-responsive.css' );
2524
 
2525
- // Auto spacing
2526
  if ( ! isset( $global_settings->auto_spacing ) || $global_settings->auto_spacing ) {
2527
  $css .= fl_builder_filesystem()->file_get_contents( FL_BUILDER_DIR . '/css/fl-builder-layout-auto-spacing.css' );
2528
  }
2529
 
2530
- // Global node responsive css
2531
  foreach ( array(
2532
  array( 'row_margins_responsive', '.fl-row[data-node] > .fl-row-content-wrap { margin: ' ),
2533
  array( 'row_padding_responsive', '.fl-row[data-node] > .fl-row-content-wrap { padding: ' ),
 
 
2534
  array( 'module_margins_responsive', '.fl-module[data-node] > .fl-module-content { margin: ' ),
2535
  ) as $data ) {
2536
  if ( '' !== $global_settings->{ $data[0] } ) {
2537
  $value = preg_replace( self::regex( 'css_unit' ), '', strtolower( $global_settings->{ $data[0] } ) );
2538
  $css .= $data[1] . esc_attr( $value );
2539
- $css .= ( is_numeric( $value ) ) ? ( 'px; }' ) : ( '; }' );
2540
  }
2541
  }
2542
 
@@ -2640,14 +2745,16 @@ final class FLBuilder {
2640
 
2641
  // Iterate over each direction
2642
  foreach ( array( 'top', 'right', 'bottom', 'left' ) as $dir ) {
2643
- $setting = $prop_type . '_' . $dir . $setting_suffix;
 
 
2644
 
2645
- if ( ! isset( $settings->{ $setting } ) ) {
2646
  continue;
2647
  }
2648
 
2649
  $prop = $prop_type . '-' . $dir;
2650
- $value = preg_replace( self::regex( 'css_unit' ), '', strtolower( $settings->{ $setting } ) );
2651
 
2652
  if ( 'border' === $prop_type ) {
2653
 
@@ -2661,7 +2768,7 @@ final class FLBuilder {
2661
  if ( '' !== $value ) {
2662
  $breakpoint_css .= "\t";
2663
  $breakpoint_css .= $prop . ':' . esc_attr( $value );
2664
- $breakpoint_css .= ( is_numeric( trim( $value ) ) ) ? ( 'px;' ) : ( ';' );
2665
  $breakpoint_css .= "\r\n";
2666
  }
2667
  }
@@ -2712,17 +2819,6 @@ final class FLBuilder {
2712
  return self::render_node_spacing( $row, 'padding' );
2713
  }
2714
 
2715
- /**
2716
- * Renders the CSS border widths for a row.
2717
- *
2718
- * @since 1.9
2719
- * @param object $row A row node object.
2720
- * @return string The row CSS border-width string.
2721
- */
2722
- static public function render_row_border( $row ) {
2723
- return self::render_node_spacing( $row, 'border' );
2724
- }
2725
-
2726
  /**
2727
  * Renders the CSS margins for a column.
2728
  *
@@ -2745,17 +2841,6 @@ final class FLBuilder {
2745
  return self::render_node_spacing( $col, 'padding' );
2746
  }
2747
 
2748
- /**
2749
- * Renders the CSS border widths for a column.
2750
- *
2751
- * @since 1.9
2752
- * @param object $col A column node object.
2753
- * @return string The column CSS border-width string.
2754
- */
2755
- static public function render_column_border( $col ) {
2756
- return self::render_node_spacing( $col, 'border', '.fl-builder-content' );
2757
- }
2758
-
2759
  /**
2760
  * Renders the CSS margins for a module.
2761
  *
@@ -2819,6 +2904,60 @@ final class FLBuilder {
2819
  return $css;
2820
  }
2821
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2822
  /**
2823
  * Renders and caches the JavaScript for a builder layout.
2824
  *
@@ -2977,6 +3116,33 @@ final class FLBuilder {
2977
  return $js;
2978
  }
2979
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2980
  /**
2981
  * Renders the JavaScript for all modules in a single column.
2982
  *
@@ -3076,6 +3242,17 @@ final class FLBuilder {
3076
  return apply_filters( 'fl_builder_should_refresh_on_publish', $refresh );
3077
  }
3078
 
 
 
 
 
 
 
 
 
 
 
 
3079
  /**
3080
  * Custom logging function that handles objects and arrays.
3081
  *
@@ -3309,6 +3486,30 @@ final class FLBuilder {
3309
 
3310
  FLBuilderUISettingsForms::render_settings_config();
3311
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3312
  }
3313
 
3314
  FLBuilder::init();
68
  * @since 2.1
69
  */
70
  static public $fa4_url = 'https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css';
71
+ static public $fa5_pro_url = 'https://pro.fontawesome.com/releases/v5.6.3/css/all.css';
72
 
73
  /**
74
  * Initializes hooks.
87
  add_action( 'wp_enqueue_scripts', __CLASS__ . '::enqueue_all_layouts_styles_scripts' );
88
  add_action( 'wp_head', __CLASS__ . '::render_custom_css_for_editing', 999 );
89
  add_action( 'admin_bar_menu', __CLASS__ . '::admin_bar_menu', 999 );
 
90
  add_action( 'wp_footer', __CLASS__ . '::render_ui' );
91
 
92
  /* Filters */
484
  }
485
  }
486
  }
487
+ if ( is_array( $row->settings->animation ) && ! empty( $row->settings->animation['style'] ) ) {
488
+ wp_enqueue_script( 'jquery-waypoints' );
489
+ }
490
+ }
491
+
492
+ // Enqueue required column CSS and JS
493
+ foreach ( $nodes['columns'] as $col ) {
494
+ if ( is_array( $col->settings->animation ) && ! empty( $col->settings->animation['style'] ) ) {
495
+ wp_enqueue_script( 'jquery-waypoints' );
496
+ }
497
  }
498
 
499
  // Enqueue required module CSS and JS
509
  foreach ( $module->js as $handle => $props ) {
510
  wp_enqueue_script( $handle, $props[0], $props[1], $props[2], $props[3] );
511
  }
512
+ if ( is_array( $module->settings->animation ) && ! empty( $module->settings->animation['style'] ) ) {
513
  wp_enqueue_script( 'jquery-waypoints' );
514
  }
515
  }
772
  wp_add_inline_style( 'admin-bar', '#wp-admin-bar-fl-builder-frontend-edit-link .ab-icon:before { content: "\f116" !important; top: 2px; margin-right: 3px; }' );
773
  }
774
 
 
 
 
 
 
 
 
 
 
 
 
 
 
775
  /**
776
  * Adds builder classes to the body class.
777
  *
971
  'items' => array(),
972
  );
973
 
974
+ $tools_view['items'][04] = array(
975
+ 'label' => __( 'Publish Layout', 'fl-builder' ),
976
+ 'type' => 'event',
977
+ 'eventName' => 'publishAndRemain',
978
+ 'accessory' => $key_shortcuts['publishAndRemain']['keyLabel'],
979
+ );
980
+
981
+ $tools_view['items'][05] = array(
982
+ 'type' => 'separator',
983
+ );
984
+
985
  if ( ! $is_lite && ! $is_user_template && ( 'enabled' == $enabled_templates || 'user' == $enabled_templates ) ) {
986
  $tools_view['items'][10] = array(
987
  'label' => __( 'Save Template', 'fl-builder' ),
1004
  'accessory' => $key_shortcuts['previewLayout']['keyLabel'],
1005
  );
1006
 
1007
+ $tools_view['items'][31] = array(
1008
+ 'label' => __( 'Responsive Editing', 'fl-builder' ),
1009
+ 'type' => 'event',
1010
+ 'eventName' => 'responsiveEditing',
1011
+ 'accessory' => $key_shortcuts['responsiveEditing']['keyLabel'],
1012
+ );
1013
+
1014
  $tools_view['items'][40] = array(
1015
  'type' => 'separator',
1016
  );
1207
  'label' => _x( 'Toggle Preview Mode', 'Keyboard action to toggle preview mode', 'fl-builder' ),
1208
  'keyCode' => 'p',
1209
  ),
1210
+ 'responsiveEditing' => array(
1211
+ 'label' => _x( 'Toggle Responsive Editing Mode', 'Keyboard action to toggle responsive editing', 'fl-builder' ),
1212
+ 'keyCode' => 'r',
1213
+ ),
1214
  'showGlobalSettings' => array(
1215
  'label' => _x( 'Open Global Settings', 'Keyboard action to open the global settings panel', 'fl-builder' ),
1216
  'keyCode' => 'mod+u',
1335
  * @return void
1336
  */
1337
  static public function render_ui_bar_buttons() {
1338
+ $help_button = FLBuilderModel::get_help_button_settings();
1339
+ $simple_ui = ! FLBuilderUserAccess::current_user_can( 'unrestricted_editing' );
1340
  $should_display_search = ! FLBuilderModel::is_post_user_template( 'module' ) && ! $simple_ui;
 
1341
  $add_btn_svg = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="24" height="24"><rect x="0" fill="none" width="24" height="24" /><g><path d="M17 9v2h-6v6H9v-6H3V9h6V3h2v6h6z"/></g></svg>';
 
1342
  $notifications = FLBuilderNotifications::get_notifications();
1343
+ $feedback_label = __( 'Dev Feedback', 'fl-builder' );
1344
+ $show_feedback = '{FL_BUILDER_VERSION}' === FL_BUILDER_VERSION;
1345
+
1346
+ if ( strstr( FL_BUILDER_VERSION, '-dev' ) ) {
1347
+ $show_feedback = true;
1348
+ } elseif ( strstr( FL_BUILDER_VERSION, '-alpha' ) ) {
1349
+ $feedback_label = __( 'Alpha Feedback', 'fl-builder' );
1350
+ $show_feedback = true;
1351
+ } elseif ( strstr( FL_BUILDER_VERSION, '-beta' ) ) {
1352
+ $feedback_label = __( 'Beta Feedback', 'fl-builder' );
1353
+ $show_feedback = true;
1354
+ }
1355
 
1356
  $buttons = apply_filters( 'fl_builder_ui_bar_buttons', array(
1357
+ 'feedback' => array(
1358
+ 'label' => $feedback_label . ' <i class="fas fa-external-link-alt"></i>',
1359
+ 'show' => $show_feedback,
1360
+ 'onclick' => "window.open('" . FLBuilderModel::get_store_url( 'contact', array(
1361
+ 'topic' => 'Pre-Release Feedback',
1362
+ 'utm_medium' => true === FL_BUILDER_LITE ? 'bb-lite' : 'bb-pro',
1363
+ 'utm_source' => 'builder-ui',
1364
+ 'utm_campaign' => 'feedback-cta',
1365
+ ) ) . "');",
1366
+ ),
1367
  'upgrade' => array(
1368
  'label' => __( 'Upgrade Today', 'fl-builder' ) . ' <i class="fas fa-external-link-alt"></i>',
1369
  'show' => true === FL_BUILDER_LITE,
1405
  echo ' ' . $button['class'];
1406
  }
1407
 
1408
+ echo '"';
1409
+
1410
+ if ( isset( $button['title'] ) ) {
1411
+ echo ' title="' . $button['title'] . '"';
1412
+ }
1413
+
1414
+ if ( isset( $button['onclick'] ) ) {
1415
+ echo ' onclick="' . $button['onclick'] . '"';
1416
+ }
1417
+
1418
+ echo '>' . $button['label'] . '</button>';
1419
 
1420
  $i++;
1421
  }
1428
  include FL_BUILDER_DIR . 'img/svg/bell-active.svg';
1429
  echo '</button>';
1430
  }
1431
+
1432
  echo '</div>';
1433
  }
1434
 
1472
  self::enqueue_layout_styles_scripts_by_id( $query_post->ID );
1473
 
1474
  // Print the styles if we are outside of the head tag.
1475
+ if ( did_action( 'wp_enqueue_scripts' ) && 'wp_enqueue_scripts' !== current_filter() ) {
1476
  wp_print_styles();
1477
  }
1478
 
1919
  $attrs['class'][] = 'fl-row-align-' . $row->settings->content_alignment;
1920
  }
1921
  }
1922
+ if ( ! empty( $row->settings->full_height ) && 'custom' == $row->settings->full_height ) {
1923
+
1924
+ $attrs['class'][] = 'fl-row-custom-height';
1925
+
1926
+ if ( isset( $row->settings->content_alignment ) ) {
1927
+ $attrs['class'][] = 'fl-row-align-' . $row->settings->content_alignment;
1928
+ }
1929
+ }
1930
+ if ( in_array( $row->settings->bg_type, $overlay_bgs ) ) {
1931
+ if ( 'color' === $row->settings->bg_overlay_type && ! empty( $row->settings->bg_overlay_color ) ) {
1932
+ $attrs['class'][] = 'fl-row-bg-overlay';
1933
+ } elseif ( 'gradient' === $row->settings->bg_overlay_type ) {
1934
+ $attrs['class'][] = 'fl-row-bg-overlay';
1935
+ }
1936
  }
1937
  if ( ! empty( $row->settings->responsive_display ) ) {
1938
  $attrs['class'][] = 'fl-visible-' . $row->settings->responsive_display;
1939
  }
1940
+ if ( is_array( $row->settings->animation ) && ! empty( $row->settings->animation['style'] ) ) {
1941
+ $attrs['class'][] = 'fl-animation fl-' . $row->settings->animation['style'];
1942
+ $attrs['data-animation-delay'][] = $row->settings->animation['delay'];
1943
+ if ( isset( $row->settings->animation['duration'] ) ) {
1944
+ $attrs['data-animation-duration'][] = $row->settings->animation['duration'];
1945
+ }
1946
+ }
1947
  if ( ! empty( $custom_class ) ) {
1948
  $attrs['class'][] = trim( esc_attr( $custom_class ) );
1949
  }
1953
  if ( $active && $has_rules ) {
1954
  $attrs['class'][] = 'fl-node-has-rules';
1955
  }
1956
+ if ( ! empty( $row->settings->top_edge_shape ) || ! empty( $row->settings->bottom_edge_shape ) ) {
1957
+ $attrs['class'][] = 'fl-row-has-layers';
1958
+ }
1959
 
1960
  // Data
1961
  if ( 'parallax' == $row->settings->bg_type && ! empty( $row->settings->bg_parallax_image_src ) ) {
2068
  }
2069
  }
2070
  }
2071
+ if ( isset( $col->settings->size_responsive ) && ! empty( $col->settings->size_responsive ) ) {
2072
  if ( ! in_array( 'fl-col-group-custom-width', $attrs['class'] ) ) {
2073
  $attrs['class'][] = 'fl-col-group-custom-width';
2074
  }
2139
  if ( count( $nested ) > 0 ) {
2140
  $attrs['class'][] = 'fl-col-has-cols';
2141
  }
2142
+ if ( in_array( $col->settings->bg_type, $overlay_bgs ) ) {
2143
+ if ( 'color' === $col->settings->bg_overlay_type && ! empty( $col->settings->bg_overlay_color ) ) {
2144
+ $attrs['class'][] = 'fl-col-bg-overlay';
2145
+ } elseif ( 'gradient' === $col->settings->bg_overlay_type ) {
2146
+ $attrs['class'][] = 'fl-col-bg-overlay';
2147
+ }
2148
  }
2149
  if ( ! empty( $col->settings->responsive_display ) ) {
2150
  $attrs['class'][] = 'fl-visible-' . $col->settings->responsive_display;
2151
  }
2152
+ if ( is_array( $col->settings->animation ) && ! empty( $col->settings->animation['style'] ) ) {
2153
+ $attrs['class'][] = 'fl-animation fl-' . $col->settings->animation['style'];
2154
+ $attrs['data-animation-delay'][] = $col->settings->animation['delay'];
2155
+ if ( isset( $col->settings->animation['duration'] ) ) {
2156
+ $attrs['data-animation-duration'][] = $col->settings->animation['duration'];
2157
+ }
2158
+ }
2159
  if ( ! empty( $custom_class ) ) {
2160
  $attrs['class'][] = trim( esc_attr( $custom_class ) );
2161
  }
2252
  // Module
2253
  $class = get_class( FLBuilderModel::$modules[ $type ] );
2254
  $module = new $class();
2255
+ $module->settings = FLBuilderSettingsCompat::filter_node_settings( 'module', $settings );
2256
 
2257
  // Shorthand reference to the module's id.
2258
  $id = $module->node;
2301
  if ( ! empty( $module->settings->responsive_display ) ) {
2302
  $attrs['class'][] = 'fl-visible-' . $module->settings->responsive_display;
2303
  }
2304
+ if ( is_array( $module->settings->animation ) && ! empty( $module->settings->animation['style'] ) ) {
2305
+ $attrs['class'][] = 'fl-animation fl-' . $module->settings->animation['style'];
2306
+ $attrs['data-animation-delay'][] = $module->settings->animation['delay'];
2307
+ if ( isset( $module->settings->animation['duration'] ) ) {
2308
+ $attrs['data-animation-duration'][] = $module->settings->animation['duration'];
2309
+ }
2310
  }
2311
  if ( ! empty( $custom_class ) ) {
2312
  $attrs['class'][] = trim( esc_attr( $custom_class ) );
2354
  // Module
2355
  $class = get_class( FLBuilderModel::$modules[ $type ] );
2356
  $module = new $class();
2357
+ $module->settings = FLBuilderSettingsCompat::filter_node_settings( 'module', $settings );
2358
 
2359
  // CSS
2360
  ob_start();
2361
  include $module->dir . 'includes/frontend.css.php';
2362
+ FLBuilderCSS::render();
2363
  $css = ob_get_clean();
2364
 
2365
  echo apply_filters( 'fl_builder_render_module_css', $css, $module, $id );
2403
  * @param bool $include_global
2404
  * @return string
2405
  */
2406
+
2407
  static public function render_css( $include_global = true ) {
2408
+ $active = FLBuilderModel::is_builder_active();
2409
  $nodes = FLBuilderModel::get_categorized_nodes();
2410
  $node_status = FLBuilderModel::get_node_status();
2411
  $global_settings = FLBuilderModel::get_global_settings();
2425
  foreach ( $nodes['rows'] as $row ) {
2426
 
2427
  // Instance row css
2428
+ $settings = $row->settings;
2429
+ $id = $row->node;
2430
  ob_start();
2431
  include FL_BUILDER_DIR . 'includes/row-css.php';
2432
+ FLBuilderCSS::render();
2433
  $css .= ob_get_clean();
2434
 
2435
  // Instance row margins
2438
  // Instance row padding
2439
  $css .= self::render_row_padding( $row );
2440
 
2441
+ // Instance row animation
2442
+ $css .= self::render_node_animation_css( $row->settings );
2443
  }
2444
 
2445
  // Loop through the columns.
2446
  foreach ( $nodes['columns'] as $col ) {
2447
 
2448
  // Instance column css
2449
+ $settings = $col->settings;
2450
+ $id = $col->node;
2451
  ob_start();
2452
  include FL_BUILDER_DIR . 'includes/column-css.php';
2453
+ FLBuilderCSS::render();
2454
  $css .= ob_get_clean();
2455
 
2456
  // Instance column margins
2459
  // Instance column padding
2460
  $css .= self::render_column_padding( $col );
2461
 
2462
+ // Instance column animation
2463
+ $css .= self::render_node_animation_css( $col->settings );
 
 
 
2464
  }
2465
 
2466
  // Loop through the modules.
2498
  self::$enqueued_module_css_assets[] = $id;
2499
  ob_start();
2500
  include $file;
2501
+ FLBuilderCSS::render();
2502
  $css .= ob_get_clean();
2503
  }
2504
 
2508
  if ( ! isset( $global_settings->auto_spacing ) || $global_settings->auto_spacing ) {
2509
  $css .= self::render_responsive_module_margins( $module );
2510
  }
2511
+
2512
+ // Instance module animation
2513
+ $css .= self::render_node_animation_css( $module->settings );
2514
+ }
2515
+
2516
+ // Render all animation CSS when the builder is active.
2517
+ if ( $active ) {
2518
+ $css .= self::render_all_animation_css();
2519
  }
2520
 
2521
  // Custom Global CSS (included here for proper specificity)
2582
  array( 'row_margins', '.fl-row-content-wrap { margin: ' ),
2583
  array( 'row_padding', '.fl-row-content-wrap { padding: ' ),
2584
  array( 'row_width', '.fl-row-fixed-width { max-width: ' ),
2585
+ array( 'column_margins', '.fl-col-content { margin: ' ),
2586
+ array( 'column_padding', '.fl-col-content { padding: ' ),
2587
  array( 'module_margins', '.fl-module-content { margin: ' ),
2588
  ) as $data ) {
2589
  if ( '' !== $global_settings->{ $data[0] } ) {
2590
  $value = preg_replace( self::regex( 'css_unit' ), '', strtolower( $global_settings->{ $data[0] } ) );
2591
  $css .= $data[1] . esc_attr( $value );
2592
+ $css .= ( is_numeric( $value ) ) ? ( $global_settings->{ $data[0] . '_unit' } . '; }' ) : ( '; }' );
2593
  }
2594
  }
2595
 
2599
  // Medium devices
2600
  $css .= '@media (max-width: ' . $global_settings->medium_breakpoint . 'px) { ';
2601
 
2602
+ // Core medium layout css
2603
+ $css .= fl_builder_filesystem()->file_get_contents( FL_BUILDER_DIR . '/css/fl-builder-layout-medium.css' );
2604
 
2605
+ // Global node medium css
2606
  foreach ( array(
2607
  array( 'row_margins_medium', '.fl-row[data-node] > .fl-row-content-wrap { margin: ' ),
2608
  array( 'row_padding_medium', '.fl-row[data-node] > .fl-row-content-wrap { padding: ' ),
2609
+ array( 'column_margins_medium', '.fl-col[data-node] > .fl-col-content { margin: ' ),
2610
+ array( 'column_padding_medium', '.fl-col[data-node] > .fl-col-content { padding: ' ),
2611
  array( 'module_margins_medium', '.fl-module[data-node] > .fl-module-content { margin: ' ),
2612
  ) as $data ) {
2613
  if ( '' !== $global_settings->{ $data[0] } ) {
2614
  $value = preg_replace( self::regex( 'css_unit' ), '', strtolower( $global_settings->{ $data[0] } ) );
2615
  $css .= $data[1] . esc_attr( $value );
2616
+ $css .= ( is_numeric( $value ) ) ? ( $global_settings->{ $data[0] . '_unit' } . '; }' ) : ( '; }' );
2617
  }
2618
  }
2619
 
2622
  // Responsive devices
2623
  $css .= '@media (max-width: ' . $global_settings->responsive_breakpoint . 'px) { ';
2624
 
2625
+ // Core responsive layout css
2626
+ $css .= fl_builder_filesystem()->file_get_contents( FL_BUILDER_DIR . '/css/fl-builder-layout-responsive.css' );
2627
 
2628
+ // Auto spacing
2629
  if ( ! isset( $global_settings->auto_spacing ) || $global_settings->auto_spacing ) {
2630
  $css .= fl_builder_filesystem()->file_get_contents( FL_BUILDER_DIR . '/css/fl-builder-layout-auto-spacing.css' );
2631
  }
2632
 
2633
+ // Global node responsive css
2634
  foreach ( array(
2635
  array( 'row_margins_responsive', '.fl-row[data-node] > .fl-row-content-wrap { margin: ' ),
2636
  array( 'row_padding_responsive', '.fl-row[data-node] > .fl-row-content-wrap { padding: ' ),
2637
+ array( 'column_margins_responsive', '.fl-col[data-node] > .fl-col-content { margin: ' ),
2638
+ array( 'column_padding_responsive', '.fl-col[data-node] > .fl-col-content { padding: ' ),
2639
  array( 'module_margins_responsive', '.fl-module[data-node] > .fl-module-content { margin: ' ),
2640
  ) as $data ) {
2641
  if ( '' !== $global_settings->{ $data[0] } ) {
2642
  $value = preg_replace( self::regex( 'css_unit' ), '', strtolower( $global_settings->{ $data[0] } ) );
2643
  $css .= $data[1] . esc_attr( $value );
2644
+ $css .= ( is_numeric( $value ) ) ? ( $global_settings->{ $data[0] . '_unit' } . '; }' ) : ( '; }' );
2645
  }
2646
  }
2647
 
2745
 
2746
  // Iterate over each direction
2747
  foreach ( array( 'top', 'right', 'bottom', 'left' ) as $dir ) {
2748
+ $setting_key = $prop_type . '_' . $dir . $setting_suffix;
2749
+ $unit_key = $prop_type . $setting_suffix . '_unit';
2750
+ $unit = isset( $settings->{ $unit_key } ) ? $settings->{ $unit_key } : 'px';
2751
 
2752
+ if ( ! isset( $settings->{ $setting_key } ) ) {
2753
  continue;
2754
  }
2755
 
2756
  $prop = $prop_type . '-' . $dir;
2757
+ $value = preg_replace( self::regex( 'css_unit' ), '', strtolower( $settings->{ $setting_key } ) );
2758
 
2759
  if ( 'border' === $prop_type ) {
2760
 
2768
  if ( '' !== $value ) {
2769
  $breakpoint_css .= "\t";
2770
  $breakpoint_css .= $prop . ':' . esc_attr( $value );
2771
+ $breakpoint_css .= ( is_numeric( trim( $value ) ) ) ? ( $unit . ';' ) : ( ';' );
2772
  $breakpoint_css .= "\r\n";
2773
  }
2774
  }
2819
  return self::render_node_spacing( $row, 'padding' );
2820
  }
2821
 
 
 
 
 
 
 
 
 
 
 
 
2822
  /**
2823
  * Renders the CSS margins for a column.
2824
  *
2841
  return self::render_node_spacing( $col, 'padding' );
2842
  }
2843
 
 
 
 
 
 
 
 
 
 
 
 
2844
  /**
2845
  * Renders the CSS margins for a module.
2846
  *
2904
  return $css;
2905
  }
2906
 
2907
+ /**
2908
+ * Renders the animation CSS for a node if it has an animation.
2909
+ *
2910
+ * @since 2.2
2911
+ * @param object $settings A node settings object.
2912
+ * @return string A CSS string.
2913
+ */
2914
+ static public function render_node_animation_css( $settings ) {
2915
+ $css = '';
2916
+
2917
+ if ( ! is_array( $settings->animation ) || empty( $settings->animation ) ) {
2918
+ return $css;
2919
+ } elseif ( in_array( 'animation-' . $settings->animation['style'], self::$enqueued_global_assets ) ) {
2920
+ return $css;
2921
+ }
2922
+
2923
+ self::$enqueued_global_assets[] = 'animation-' . $settings->animation['style'];
2924
+ $path = FL_BUILDER_DIR . 'css/animations/' . $settings->animation['style'] . '.css';
2925
+
2926
+ if ( file_exists( $path ) ) {
2927
+ $css = file_get_contents( $path );
2928
+ }
2929
+
2930
+ return $css;
2931
+ }
2932
+
2933
+ /**
2934
+ * Renders all animation CSS for use in the builder UI.
2935
+ *
2936
+ * @since 2.2
2937
+ * @return string A CSS string.
2938
+ */
2939
+ static public function render_all_animation_css() {
2940
+ $css = '';
2941
+ $animations = glob( FL_BUILDER_DIR . 'css/animations/*.css' );
2942
+
2943
+ if ( ! is_array( $animations ) ) {
2944
+ return $css;
2945
+ }
2946
+
2947
+ foreach ( $animations as $path ) {
2948
+ $key = basename( $path, '.css' );
2949
+
2950
+ if ( in_array( 'animation-' . $key, self::$enqueued_global_assets ) ) {
2951
+ continue;
2952
+ }
2953
+
2954
+ self::$enqueued_global_assets[] = 'animation-' . $key;
2955
+ $css .= file_get_contents( $path );
2956
+ }
2957
+
2958
+ return $css;
2959
+ }
2960
+
2961
  /**
2962
  * Renders and caches the JavaScript for a builder layout.
2963
  *
3116
  return $js;
3117
  }
3118
 
3119
+ /**
3120
+ * Renders the JavaScript for all modules in a single column group.
3121
+ *
3122
+ * @since 2.2
3123
+ * @param string|object $group_id A row ID or object.
3124
+ * @return string
3125
+ */
3126
+ static public function render_column_group_modules_js( $group_id ) {
3127
+ $group = is_object( $group_id ) ? $group_id : FLBuilderModel::get_node( $group_id );
3128
+ $nodes = FLBuilderModel::get_categorized_nodes();
3129
+ $js = '';
3130
+
3131
+ // Render the JS.
3132
+ foreach ( $nodes['columns'] as $column ) {
3133
+ if ( $group->node == $column->parent ) {
3134
+ foreach ( $nodes['modules'] as $module ) {
3135
+ if ( $column->node == $module->parent ) {
3136
+ $js .= self::render_module_js( $module );
3137
+ }
3138
+ }
3139
+ }
3140
+ }
3141
+
3142
+ // Return the JS.
3143
+ return $js;
3144
+ }
3145
+
3146
  /**
3147
  * Renders the JavaScript for all modules in a single column.
3148
  *
3242
  return apply_filters( 'fl_builder_should_refresh_on_publish', $refresh );
3243
  }
3244
 
3245
+ /**
3246
+ * Register svg shape art to be used in a shape layer
3247
+ *
3248
+ * @since 2.2
3249
+ * @param Array $args
3250
+ * @return void
3251
+ */
3252
+ static public function register_shape( $args = array() ) {
3253
+ FLBuilderArt::register_shape( $args );
3254
+ }
3255
+
3256
  /**
3257
  * Custom logging function that handles objects and arrays.
3258
  *
3486
 
3487
  FLBuilderUISettingsForms::render_settings_config();
3488
  }
3489
+
3490
+ /**
3491
+ * @since 1.9
3492
+ * @deprecated 2.2
3493
+ */
3494
+ static public function render_row_border( $row ) {
3495
+ _deprecated_function( __METHOD__, '2.2', 'FLBuilderCSS::responsive_rule()' );
3496
+ }
3497
+
3498
+ /**
3499
+ * @since 1.9
3500
+ * @deprecated 2.2
3501
+ */
3502
+ static public function render_column_border( $col ) {
3503
+ _deprecated_function( __METHOD__, '2.2', 'FLBuilderCSS::responsive_rule()' );
3504
+ }
3505
+
3506
+ /**
3507
+ * @since 1.0
3508
+ * @deprecated 2.2
3509
+ */
3510
+ static public function include_jquery() {
3511
+ _deprecated_function( __METHOD__, '2.2' );
3512
+ }
3513
  }
3514
 
3515
  FLBuilder::init();
css/animations/bounce-down.css ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-bounce-down {
2
+ animation: fl-bounce-down 1s ease;
3
+ -webkit-animation: fl-bounce-down 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-bounce-down {
6
+ from,
7
+ 60%,
8
+ 75%,
9
+ 90%,
10
+ to {
11
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
12
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
13
+ }
14
+ 0% {
15
+ opacity: 0;
16
+ -webkit-transform: translate3d(0, -3000px, 0);
17
+ transform: translate3d(0, -3000px, 0);
18
+ }
19
+ 60% {
20
+ opacity: 1;
21
+ -webkit-transform: translate3d(0, 25px, 0);
22
+ transform: translate3d(0, 25px, 0);
23
+ }
24
+ 75% {
25
+ -webkit-transform: translate3d(0, -10px, 0);
26
+ transform: translate3d(0, -10px, 0);
27
+ }
28
+ 90% {
29
+ -webkit-transform: translate3d(0, 5px, 0);
30
+ transform: translate3d(0, 5px, 0);
31
+ }
32
+ to {
33
+ -webkit-transform: translate3d(0, 0, 0);
34
+ transform: translate3d(0, 0, 0);
35
+ }
36
+ }
37
+ @keyframes fl-bounce-down {
38
+ from,
39
+ 60%,
40
+ 75%,
41
+ 90%,
42
+ to {
43
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
44
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
45
+ }
46
+ 0% {
47
+ opacity: 0;
48
+ -webkit-transform: translate3d(0, -3000px, 0);
49
+ transform: translate3d(0, -3000px, 0);
50
+ }
51
+ 60% {
52
+ opacity: 1;
53
+ -webkit-transform: translate3d(0, 25px, 0);
54
+ transform: translate3d(0, 25px, 0);
55
+ }
56
+ 75% {
57
+ -webkit-transform: translate3d(0, -10px, 0);
58
+ transform: translate3d(0, -10px, 0);
59
+ }
60
+ 90% {
61
+ -webkit-transform: translate3d(0, 5px, 0);
62
+ transform: translate3d(0, 5px, 0);
63
+ }
64
+ to {
65
+ -webkit-transform: translate3d(0, 0, 0);
66
+ transform: translate3d(0, 0, 0);
67
+ }
68
+ }
css/animations/bounce-in.css ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-bounce-in {
2
+ animation: fl-bounce-in 0.75s ease;
3
+ -webkit-animation: fl-bounce-in 0.75s ease;
4
+ }
5
+ @-webkit-keyframes fl-bounce-in {
6
+ from,
7
+ 20%,
8
+ 40%,
9
+ 60%,
10
+ 80%,
11
+ to {
12
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
13
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
14
+ }
15
+ 0% {
16
+ opacity: 0;
17
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
18
+ transform: scale3d(0.3, 0.3, 0.3);
19
+ }
20
+ 20% {
21
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
22
+ transform: scale3d(1.1, 1.1, 1.1);
23
+ }
24
+ 40% {
25
+ -webkit-transform: scale3d(0.9, 0.9, 0.9);
26
+ transform: scale3d(0.9, 0.9, 0.9);
27
+ }
28
+ 60% {
29
+ opacity: 1;
30
+ -webkit-transform: scale3d(1.03, 1.03, 1.03);
31
+ transform: scale3d(1.03, 1.03, 1.03);
32
+ }
33
+ 80% {
34
+ -webkit-transform: scale3d(0.97, 0.97, 0.97);
35
+ transform: scale3d(0.97, 0.97, 0.97);
36
+ }
37
+ to {
38
+ opacity: 1;
39
+ -webkit-transform: scale3d(1, 1, 1);
40
+ transform: scale3d(1, 1, 1);
41
+ }
42
+ }
43
+ @keyframes fl-bounce-in {
44
+ from,
45
+ 20%,
46
+ 40%,
47
+ 60%,
48
+ 80%,
49
+ to {
50
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
51
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
52
+ }
53
+ 0% {
54
+ opacity: 0;
55
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
56
+ transform: scale3d(0.3, 0.3, 0.3);
57
+ }
58
+ 20% {
59
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
60
+ transform: scale3d(1.1, 1.1, 1.1);
61
+ }
62
+ 40% {
63
+ -webkit-transform: scale3d(0.9, 0.9, 0.9);
64
+ transform: scale3d(0.9, 0.9, 0.9);
65
+ }
66
+ 60% {
67
+ opacity: 1;
68
+ -webkit-transform: scale3d(1.03, 1.03, 1.03);
69
+ transform: scale3d(1.03, 1.03, 1.03);
70
+ }
71
+ 80% {
72
+ -webkit-transform: scale3d(0.97, 0.97, 0.97);
73
+ transform: scale3d(0.97, 0.97, 0.97);
74
+ }
75
+ to {
76
+ opacity: 1;
77
+ -webkit-transform: scale3d(1, 1, 1);
78
+ transform: scale3d(1, 1, 1);
79
+ }
80
+ }
css/animations/bounce-left.css ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-bounce-left {
2
+ animation: fl-bounce-left 1s ease;
3
+ -webkit-animation: fl-bounce-left 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-bounce-left {
6
+ from,
7
+ 60%,
8
+ 75%,
9
+ 90%,
10
+ to {
11
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
12
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
13
+ }
14
+ 0% {
15
+ opacity: 0;
16
+ -webkit-transform: translate3d(-3000px, 0, 0);
17
+ transform: translate3d(-3000px, 0, 0);
18
+ }
19
+ 60% {
20
+ opacity: 1;
21
+ -webkit-transform: translate3d(25px, 0, 0);
22
+ transform: translate3d(25px, 0, 0);
23
+ }
24
+ 75% {
25
+ -webkit-transform: translate3d(-10px, 0, 0);
26
+ transform: translate3d(-10px, 0, 0);
27
+ }
28
+ 90% {
29
+ -webkit-transform: translate3d(5px, 0, 0);
30
+ transform: translate3d(5px, 0, 0);
31
+ }
32
+ to {
33
+ -webkit-transform: translate3d(0, 0, 0);
34
+ transform: translate3d(0, 0, 0);
35
+ }
36
+ }
37
+ @keyframes fl-bounce-left {
38
+ from,
39
+ 60%,
40
+ 75%,
41
+ 90%,
42
+ to {
43
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
44
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
45
+ }
46
+ 0% {
47
+ opacity: 0;
48
+ -webkit-transform: translate3d(-3000px, 0, 0);
49
+ transform: translate3d(-3000px, 0, 0);
50
+ }
51
+ 60% {
52
+ opacity: 1;
53
+ -webkit-transform: translate3d(25px, 0, 0);
54
+ transform: translate3d(25px, 0, 0);
55
+ }
56
+ 75% {
57
+ -webkit-transform: translate3d(-10px, 0, 0);
58
+ transform: translate3d(-10px, 0, 0);
59
+ }
60
+ 90% {
61
+ -webkit-transform: translate3d(5px, 0, 0);
62
+ transform: translate3d(5px, 0, 0);
63
+ }
64
+ to {
65
+ -webkit-transform: translate3d(0, 0, 0);
66
+ transform: translate3d(0, 0, 0);
67
+ }
68
+ }
css/animations/bounce-right.css ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-bounce-right {
2
+ animation: fl-bounce-right 1s ease;
3
+ -webkit-animation: fl-bounce-right 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-bounce-right {
6
+ from,
7
+ 60%,
8
+ 75%,
9
+ 90%,
10
+ to {
11
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
12
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
13
+ }
14
+ from {
15
+ opacity: 0;
16
+ -webkit-transform: translate3d(3000px, 0, 0);
17
+ transform: translate3d(3000px, 0, 0);
18
+ }
19
+ 60% {
20
+ opacity: 1;
21
+ -webkit-transform: translate3d(-25px, 0, 0);
22
+ transform: translate3d(-25px, 0, 0);
23
+ }
24
+ 75% {
25
+ -webkit-transform: translate3d(10px, 0, 0);
26
+ transform: translate3d(10px, 0, 0);
27
+ }
28
+ 90% {
29
+ -webkit-transform: translate3d(-5px, 0, 0);
30
+ transform: translate3d(-5px, 0, 0);
31
+ }
32
+ to {
33
+ -webkit-transform: translate3d(0, 0, 0);
34
+ transform: translate3d(0, 0, 0);
35
+ }
36
+ }
37
+ @keyframes fl-bounce-right {
38
+ from,
39
+ 60%,
40
+ 75%,
41
+ 90%,
42
+ to {
43
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
44
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
45
+ }
46
+ from {
47
+ opacity: 0;
48
+ -webkit-transform: translate3d(3000px, 0, 0);
49
+ transform: translate3d(3000px, 0, 0);
50
+ }
51
+ 60% {
52
+ opacity: 1;
53
+ -webkit-transform: translate3d(-25px, 0, 0);
54
+ transform: translate3d(-25px, 0, 0);
55
+ }
56
+ 75% {
57
+ -webkit-transform: translate3d(10px, 0, 0);
58
+ transform: translate3d(10px, 0, 0);
59
+ }
60
+ 90% {
61
+ -webkit-transform: translate3d(-5px, 0, 0);
62
+ transform: translate3d(-5px, 0, 0);
63
+ }
64
+ to {
65
+ -webkit-transform: translate3d(0, 0, 0);
66
+ transform: translate3d(0, 0, 0);
67
+ }
68
+ }
css/animations/bounce-up.css ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-bounce-up {
2
+ animation: fl-bounce-up 1s ease;
3
+ -webkit-animation: fl-bounce-up 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-bounce-up {
6
+ from,
7
+ 60%,
8
+ 75%,
9
+ 90%,
10
+ to {
11
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
12
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
13
+ }
14
+ from {
15
+ opacity: 0;
16
+ -webkit-transform: translate3d(0, 3000px, 0);
17
+ transform: translate3d(0, 3000px, 0);
18
+ }
19
+ 60% {
20
+ opacity: 1;
21
+ -webkit-transform: translate3d(0, -20px, 0);
22
+ transform: translate3d(0, -20px, 0);
23
+ }
24
+ 75% {
25
+ -webkit-transform: translate3d(0, 10px, 0);
26
+ transform: translate3d(0, 10px, 0);
27
+ }
28
+ 90% {
29
+ -webkit-transform: translate3d(0, -5px, 0);
30
+ transform: translate3d(0, -5px, 0);
31
+ }
32
+ to {
33
+ -webkit-transform: translate3d(0, 0, 0);
34
+ transform: translate3d(0, 0, 0);
35
+ }
36
+ }
37
+ @keyframes fl-bounce-up {
38
+ from,
39
+ 60%,
40
+ 75%,
41
+ 90%,
42
+ to {
43
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
44
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
45
+ }
46
+ from {
47
+ opacity: 0;
48
+ -webkit-transform: translate3d(0, 3000px, 0);
49
+ transform: translate3d(0, 3000px, 0);
50
+ }
51
+ 60% {
52
+ opacity: 1;
53
+ -webkit-transform: translate3d(0, -20px, 0);
54
+ transform: translate3d(0, -20px, 0);
55
+ }
56
+ 75% {
57
+ -webkit-transform: translate3d(0, 10px, 0);
58
+ transform: translate3d(0, 10px, 0);
59
+ }
60
+ 90% {
61
+ -webkit-transform: translate3d(0, -5px, 0);
62
+ transform: translate3d(0, -5px, 0);
63
+ }
64
+ to {
65
+ -webkit-transform: translate3d(0, 0, 0);
66
+ transform: translate3d(0, 0, 0);
67
+ }
68
+ }
css/animations/bounce.css ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-bounce {
2
+ animation: fl-bounce 1s ease;
3
+ -webkit-animation: fl-bounce 1s ease;
4
+ transform-origin: center bottom;
5
+ -webkit-transform-origin: center bottom;
6
+ }
7
+ @-webkit-keyframes fl-bounce {
8
+ from,
9
+ 20%,
10
+ 53%,
11
+ 80%,
12
+ to {
13
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
14
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
15
+ -webkit-transform: translate3d(0, 0, 0);
16
+ transform: translate3d(0, 0, 0);
17
+ }
18
+ 40%,
19
+ 43% {
20
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
21
+ animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
22
+ -webkit-transform: translate3d(0, -30px, 0);
23
+ transform: translate3d(0, -30px, 0);
24
+ }
25
+ 70% {
26
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
27
+ animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
28
+ -webkit-transform: translate3d(0, -15px, 0);
29
+ transform: translate3d(0, -15px, 0);
30
+ }
31
+ 90% {
32
+ -webkit-transform: translate3d(0, -4px, 0);
33
+ transform: translate3d(0, -4px, 0);
34
+ }
35
+ }
36
+ @keyframes fl-bounce {
37
+ from,
38
+ 20%,
39
+ 53%,
40
+ 80%,
41
+ to {
42
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
43
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
44
+ -webkit-transform: translate3d(0, 0, 0);
45
+ transform: translate3d(0, 0, 0);
46
+ }
47
+ 40%,
48
+ 43% {
49
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
50
+ animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
51
+ -webkit-transform: translate3d(0, -30px, 0);
52
+ transform: translate3d(0, -30px, 0);
53
+ }
54
+ 70% {
55
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
56
+ animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
57
+ -webkit-transform: translate3d(0, -15px, 0);
58
+ transform: translate3d(0, -15px, 0);
59
+ }
60
+ 90% {
61
+ -webkit-transform: translate3d(0, -4px, 0);
62
+ transform: translate3d(0, -4px, 0);
63
+ }
64
+ }
css/animations/fade-down.css ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-fade-down {
2
+ animation: fl-fade-down 1s ease;
3
+ -webkit-animation: fl-fade-down 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-fade-down {
6
+ from {
7
+ opacity: 0;
8
+ -webkit-transform: translate3d(0, -50%, 0);
9
+ transform: translate3d(0, -50%, 0);
10
+ }
11
+ to {
12
+ opacity: 1;
13
+ -webkit-transform: translate3d(0, 0, 0);
14
+ transform: translate3d(0, 0, 0);
15
+ }
16
+ }
17
+ @keyframes fl-fade-down {
18
+ from {
19
+ opacity: 0;
20
+ -webkit-transform: translate3d(0, -50%, 0);
21
+ transform: translate3d(0, -50%, 0);
22
+ }
23
+ to {
24
+ opacity: 1;
25
+ -webkit-transform: translate3d(0, 0, 0);
26
+ transform: translate3d(0, 0, 0);
27
+ }
28
+ }
css/animations/fade-in.css ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-fade-in {
2
+ animation: fl-fade-in 1s ease;
3
+ -webkit-animation: fl-fade-in 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-fade-in {
6
+ from {
7
+ opacity: 0;
8
+ }
9
+ to {
10
+ opacity: 1;
11
+ }
12
+ }
13
+ @keyframes fl-fade-in {
14
+ from {
15
+ opacity: 0;
16
+ }
17
+ to {
18
+ opacity: 1;
19
+ }
20
+ }
css/animations/fade-left.css ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-fade-left {
2
+ animation: fl-fade-left 1s ease;
3
+ -webkit-animation: fl-fade-left 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-fade-left {
6
+ from {
7
+ opacity: 0;
8
+ -webkit-transform: translate3d(-50%, 0, 0);
9
+ transform: translate3d(-50%, 0, 0);
10
+ }
11
+ to {
12
+ opacity: 1;
13
+ -webkit-transform: translate3d(0, 0, 0);
14
+ transform: translate3d(0, 0, 0);
15
+ }
16
+ }
17
+ @keyframes fl-fade-left {
18
+ from {
19
+ opacity: 0;
20
+ -webkit-transform: translate3d(-50%, 0, 0);
21
+ transform: translate3d(-50%, 0, 0);
22
+ }
23
+ to {
24
+ opacity: 1;
25
+ -webkit-transform: translate3d(0, 0, 0);
26
+ transform: translate3d(0, 0, 0);
27
+ }
28
+ }
css/animations/fade-right.css ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-fade-right {
2
+ animation: fl-fade-right 1s ease;
3
+ -webkit-animation: fl-fade-right 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-fade-right {
6
+ from {
7
+ opacity: 0;
8
+ -webkit-transform: translate3d(50%, 0, 0);
9
+ transform: translate3d(50%, 0, 0);
10
+ }
11
+ to {
12
+ opacity: 1;
13
+ -webkit-transform: translate3d(0, 0, 0);
14
+ transform: translate3d(0, 0, 0);
15
+ }
16
+ }
17
+ @keyframes fl-fade-right {
18
+ from {
19
+ opacity: 0;
20
+ -webkit-transform: translate3d(50%, 0, 0);
21
+ transform: translate3d(50%, 0, 0);
22
+ }
23
+ to {
24
+ opacity: 1;
25
+ -webkit-transform: translate3d(0, 0, 0);
26
+ transform: translate3d(0, 0, 0);
27
+ }
28
+ }
css/animations/fade-up.css ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-fade-up {
2
+ animation: fl-fade-up 1s ease;
3
+ -webkit-animation: fl-fade-up 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-fade-up {
6
+ from {
7
+ opacity: 0;
8
+ -webkit-transform: translate3d(0, 50%, 0);
9
+ transform: translate3d(0, 50%, 0);
10
+ }
11
+ to {
12
+ opacity: 1;
13
+ -webkit-transform: translate3d(0, 0, 0);
14
+ transform: translate3d(0, 0, 0);
15
+ }
16
+ }
17
+ @keyframes fl-fade-up {
18
+ from {
19
+ opacity: 0;
20
+ -webkit-transform: translate3d(0, 50%, 0);
21
+ transform: translate3d(0, 50%, 0);
22
+ }
23
+ to {
24
+ opacity: 1;
25
+ -webkit-transform: translate3d(0, 0, 0);
26
+ transform: translate3d(0, 0, 0);
27
+ }
28
+ }
css/animations/fancy-flash.css ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-fancy-flash {
2
+ animation: fl-fancy-flash 1s ease;
3
+ -webkit-animation: fl-fancy-flash 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-fancy-flash {
6
+ from,
7
+ 50%,
8
+ to {
9
+ opacity: 1;
10
+ }
11
+ 25%,
12
+ 75% {
13
+ opacity: 0;
14
+ }
15
+ }
16
+ @keyframes fl-fancy-flash {
17
+ from,
18
+ 50%,
19
+ to {
20
+ opacity: 1;
21
+ }
22
+ 25%,
23
+ 75% {
24
+ opacity: 0;
25
+ }
26
+ }
css/animations/fancy-jack-box.css ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-fancy-jack-box {
2
+ animation: fl-fancy-jack-box 1s ease;
3
+ -webkit-animation: fl-fancy-jack-box 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-fancy-jack-box {
6
+ from {
7
+ opacity: 0;
8
+ -webkit-transform: scale(0.1) rotate(30deg);
9
+ transform: scale(0.1) rotate(30deg);
10
+ -webkit-transform-origin: center bottom;
11
+ transform-origin: center bottom;
12
+ }
13
+ 50% {
14
+ -webkit-transform: rotate(-10deg);
15
+ transform: rotate(-10deg);
16
+ }
17
+ 70% {
18
+ -webkit-transform: rotate(3deg);
19
+ transform: rotate(3deg);
20
+ }
21
+ to {
22
+ opacity: 1;
23
+ -webkit-transform: scale(1);
24
+ transform: scale(1);
25
+ }
26
+ }
27
+ @keyframes fl-fancy-jack-box {
28
+ from {
29
+ opacity: 0;
30
+ -webkit-transform: scale(0.1) rotate(30deg);
31
+ transform: scale(0.1) rotate(30deg);
32
+ -webkit-transform-origin: center bottom;
33
+ transform-origin: center bottom;
34
+ }
35
+ 50% {
36
+ -webkit-transform: rotate(-10deg);
37
+ transform: rotate(-10deg);
38
+ }
39
+ 70% {
40
+ -webkit-transform: rotate(3deg);
41
+ transform: rotate(3deg);
42
+ }
43
+ to {
44
+ opacity: 1;
45
+ -webkit-transform: scale(1);
46
+ transform: scale(1);
47
+ }
48
+ }
css/animations/fancy-jello.css ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-fancy-jello {
2
+ animation: fl-fancy-jello 1s ease;
3
+ -webkit-animation: fl-fancy-jello 1s ease;
4
+ transform-origin: center;
5
+ -webkit-transform-origin: center;
6
+ }
7
+ @-webkit-keyframes fl-fancy-jello {
8
+ from,
9
+ 11.1%,
10
+ to {
11
+ -webkit-transform: translate3d(0, 0, 0);
12
+ transform: translate3d(0, 0, 0);
13
+ }
14
+ 22.2% {
15
+ -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
16
+ transform: skewX(-12.5deg) skewY(-12.5deg);
17
+ }
18
+ 33.3% {
19
+ -webkit-transform: skewX(6.25deg) skewY(6.25deg);
20
+ transform: skewX(6.25deg) skewY(6.25deg);
21
+ }
22
+ 44.4% {
23
+ -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
24
+ transform: skewX(-3.125deg) skewY(-3.125deg);
25
+ }
26
+ 55.5% {
27
+ -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
28
+ transform: skewX(1.5625deg) skewY(1.5625deg);
29
+ }
30
+ 66.6% {
31
+ -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
32
+ transform: skewX(-0.78125deg) skewY(-0.78125deg);
33
+ }
34
+ 77.7% {
35
+ -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);
36
+ transform: skewX(0.390625deg) skewY(0.390625deg);
37
+ }
38
+ 88.8% {
39
+ -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
40
+ transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
41
+ }
42
+ }
43
+ @keyframes fl-fancy-jello {
44
+ from,
45
+ 11.1%,
46
+ to {
47
+ -webkit-transform: translate3d(0, 0, 0);
48
+ transform: translate3d(0, 0, 0);
49
+ }
50
+ 22.2% {
51
+ -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
52
+ transform: skewX(-12.5deg) skewY(-12.5deg);
53
+ }
54
+ 33.3% {
55
+ -webkit-transform: skewX(6.25deg) skewY(6.25deg);
56
+ transform: skewX(6.25deg) skewY(6.25deg);
57
+ }
58
+ 44.4% {
59
+ -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
60
+ transform: skewX(-3.125deg) skewY(-3.125deg);
61
+ }
62
+ 55.5% {
63
+ -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
64
+ transform: skewX(1.5625deg) skewY(1.5625deg);
65
+ }
66
+ 66.6% {
67
+ -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
68
+ transform: skewX(-0.78125deg) skewY(-0.78125deg);
69
+ }
70
+ 77.7% {
71
+ -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);
72
+ transform: skewX(0.390625deg) skewY(0.390625deg);
73
+ }
74
+ 88.8% {
75
+ -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
76
+ transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
77
+ }
78
+ }
css/animations/fancy-light-speed.css ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-fancy-light-speed {
2
+ animation: fl-fancy-light-speed 1s ease-out;
3
+ -webkit-animation: fl-fancy-light-speed 1s ease-out;
4
+ }
5
+ @-webkit-keyframes fl-fancy-light-speed {
6
+ from {
7
+ -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
8
+ transform: translate3d(100%, 0, 0) skewX(-30deg);
9
+ opacity: 0;
10
+ }
11
+ 60% {
12
+ -webkit-transform: skewX(20deg);
13
+ transform: skewX(20deg);
14
+ opacity: 1;
15
+ }
16
+ 80% {
17
+ -webkit-transform: skewX(-5deg);
18
+ transform: skewX(-5deg);
19
+ opacity: 1;
20
+ }
21
+ to {
22
+ -webkit-transform: translate3d(0, 0, 0);
23
+ transform: translate3d(0, 0, 0);
24
+ opacity: 1;
25
+ }
26
+ }
27
+ @keyframes fl-fancy-light-speed {
28
+ from {
29
+ -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
30
+ transform: translate3d(100%, 0, 0) skewX(-30deg);
31
+ opacity: 0;
32
+ }
33
+ 60% {
34
+ -webkit-transform: skewX(20deg);
35
+ transform: skewX(20deg);
36
+ opacity: 1;
37
+ }
38
+ 80% {
39
+ -webkit-transform: skewX(-5deg);
40
+ transform: skewX(-5deg);
41
+ opacity: 1;
42
+ }
43
+ to {
44
+ -webkit-transform: translate3d(0, 0, 0);
45
+ transform: translate3d(0, 0, 0);
46
+ opacity: 1;
47
+ }
48
+ }
css/animations/fancy-pulse.css ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-fancy-pulse {
2
+ animation: fl-fancy-pulse 1s ease;
3
+ -webkit-animation: fl-fancy-pulse 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-fancy-pulse {
6
+ from {
7
+ -webkit-transform: scale3d(1, 1, 1);
8
+ transform: scale3d(1, 1, 1);
9
+ }
10
+ 50% {
11
+ -webkit-transform: scale3d(1.05, 1.05, 1.05);
12
+ transform: scale3d(1.05, 1.05, 1.05);
13
+ }
14
+ to {
15
+ -webkit-transform: scale3d(1, 1, 1);
16
+ transform: scale3d(1, 1, 1);
17
+ }
18
+ }
19
+ @keyframes fl-fancy-pulse {
20
+ from {
21
+ -webkit-transform: scale3d(1, 1, 1);
22
+ transform: scale3d(1, 1, 1);
23
+ }
24
+ 50% {
25
+ -webkit-transform: scale3d(1.05, 1.05, 1.05);
26
+ transform: scale3d(1.05, 1.05, 1.05);
27
+ }
28
+ to {
29
+ -webkit-transform: scale3d(1, 1, 1);
30
+ transform: scale3d(1, 1, 1);
31
+ }
32
+ }
css/animations/fancy-roll-in.css ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-fancy-roll-in {
2
+ animation: fl-fancy-roll-in 1s ease;
3
+ -webkit-animation: fl-fancy-roll-in 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-fancy-roll-in {
6
+ from {
7
+ opacity: 0;
8
+ -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
9
+ transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
10
+ }
11
+ to {
12
+ opacity: 1;
13
+ -webkit-transform: translate3d(0, 0, 0);
14
+ transform: translate3d(0, 0, 0);
15
+ }
16
+ }
17
+ @keyframes fl-fancy-roll-in {
18
+ from {
19
+ opacity: 0;
20
+ -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
21
+ transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
22
+ }
23
+ to {
24
+ opacity: 1;
25
+ -webkit-transform: translate3d(0, 0, 0);
26
+ transform: translate3d(0, 0, 0);
27
+ }
28
+ }
css/animations/fancy-rubber-band.css ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-fancy-rubber-band {
2
+ animation: fl-fancy-rubber-band 1s ease;
3
+ -webkit-animation: fl-fancy-rubber-band 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-fancy-rubber-band {
6
+ from {
7
+ -webkit-transform: scale3d(1, 1, 1);
8
+ transform: scale3d(1, 1, 1);
9
+ }
10
+ 30% {
11
+ -webkit-transform: scale3d(1.25, 0.75, 1);
12
+ transform: scale3d(1.25, 0.75, 1);
13
+ }
14
+ 40% {
15
+ -webkit-transform: scale3d(0.75, 1.25, 1);
16
+ transform: scale3d(0.75, 1.25, 1);
17
+ }
18
+ 50% {
19
+ -webkit-transform: scale3d(1.15, 0.85, 1);
20
+ transform: scale3d(1.15, 0.85, 1);
21
+ }
22
+ 65% {
23
+ -webkit-transform: scale3d(0.95, 1.05, 1);
24
+ transform: scale3d(0.95, 1.05, 1);
25
+ }
26
+ 75% {
27
+ -webkit-transform: scale3d(1.05, 0.95, 1);
28
+ transform: scale3d(1.05, 0.95, 1);
29
+ }
30
+ to {
31
+ -webkit-transform: scale3d(1, 1, 1);
32
+ transform: scale3d(1, 1, 1);
33
+ }
34
+ }
35
+ @keyframes fl-fancy-rubber-band {
36
+ from {
37
+ -webkit-transform: scale3d(1, 1, 1);
38
+ transform: scale3d(1, 1, 1);
39
+ }
40
+ 30% {
41
+ -webkit-transform: scale3d(1.25, 0.75, 1);
42
+ transform: scale3d(1.25, 0.75, 1);
43
+ }
44
+ 40% {
45
+ -webkit-transform: scale3d(0.75, 1.25, 1);
46
+ transform: scale3d(0.75, 1.25, 1);
47
+ }
48
+ 50% {
49
+ -webkit-transform: scale3d(1.15, 0.85, 1);
50
+ transform: scale3d(1.15, 0.85, 1);
51
+ }
52
+ 65% {
53
+ -webkit-transform: scale3d(0.95, 1.05, 1);
54
+ transform: scale3d(0.95, 1.05, 1);
55
+ }
56
+ 75% {
57
+ -webkit-transform: scale3d(1.05, 0.95, 1);
58
+ transform: scale3d(1.05, 0.95, 1);
59
+ }
60
+ to {
61
+ -webkit-transform: scale3d(1, 1, 1);
62
+ transform: scale3d(1, 1, 1);
63
+ }
64
+ }
css/animations/fancy-shake.css ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-fancy-shake {
2
+ animation: fl-fancy-shake 1s ease;
3
+ -webkit-animation: fl-fancy-shake 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-fancy-shake {
6
+ from,
7
+ to {
8
+ -webkit-transform: translate3d(0, 0, 0);
9
+ transform: translate3d(0, 0, 0);
10
+ }
11
+ 10%,
12
+ 30%,
13
+ 50%,
14
+ 70%,
15
+ 90% {
16
+ -webkit-transform: translate3d(-10px, 0, 0);
17
+ transform: translate3d(-10px, 0, 0);
18
+ }
19
+ 20%,
20
+ 40%,
21
+ 60%,
22
+ 80% {
23
+ -webkit-transform: translate3d(10px, 0, 0);
24
+ transform: translate3d(10px, 0, 0);
25
+ }
26
+ }
27
+ @keyframes fl-fancy-shake {
28
+ from,
29
+ to {
30
+ -webkit-transform: translate3d(0, 0, 0);
31
+ transform: translate3d(0, 0, 0);
32
+ }
33
+ 10%,
34
+ 30%,
35
+ 50%,
36
+ 70%,
37
+ 90% {
38
+ -webkit-transform: translate3d(-10px, 0, 0);
39
+ transform: translate3d(-10px, 0, 0);
40
+ }
41
+ 20%,
42
+ 40%,
43
+ 60%,
44
+ 80% {
45
+ -webkit-transform: translate3d(10px, 0, 0);
46
+ transform: translate3d(10px, 0, 0);
47
+ }
48
+ }
css/animations/fancy-swing.css ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-fancy-swing {
2
+ animation: fl-fancy-swing 1s ease;
3
+ -webkit-animation: fl-fancy-swing 1s ease;
4
+ transform-origin: top center;
5
+ -webkit-transform-origin: top center;
6
+ }
7
+ @-webkit-keyframes fl-fancy-swing {
8
+ 20% {
9
+ -webkit-transform: rotate3d(0, 0, 1, 15deg);
10
+ transform: rotate3d(0, 0, 1, 15deg);
11
+ }
12
+ 40% {
13
+ -webkit-transform: rotate3d(0, 0, 1, -10deg);
14
+ transform: rotate3d(0, 0, 1, -10deg);
15
+ }
16
+ 60% {
17
+ -webkit-transform: rotate3d(0, 0, 1, 5deg);
18
+ transform: rotate3d(0, 0, 1, 5deg);
19
+ }
20
+ 80% {
21
+ -webkit-transform: rotate3d(0, 0, 1, -5deg);
22
+ transform: rotate3d(0, 0, 1, -5deg);
23
+ }
24
+ to {
25
+ -webkit-transform: rotate3d(0, 0, 1, 0deg);
26
+ transform: rotate3d(0, 0, 1, 0deg);
27
+ }
28
+ }
29
+ @keyframes fl-fancy-swing {
30
+ 20% {
31
+ -webkit-transform: rotate3d(0, 0, 1, 15deg);
32
+ transform: rotate3d(0, 0, 1, 15deg);
33
+ }
34
+ 40% {
35
+ -webkit-transform: rotate3d(0, 0, 1, -10deg);
36
+ transform: rotate3d(0, 0, 1, -10deg);
37
+ }
38
+ 60% {
39
+ -webkit-transform: rotate3d(0, 0, 1, 5deg);
40
+ transform: rotate3d(0, 0, 1, 5deg);
41
+ }
42
+ 80% {
43
+ -webkit-transform: rotate3d(0, 0, 1, -5deg);
44
+ transform: rotate3d(0, 0, 1, -5deg);
45
+ }
46
+ to {
47
+ -webkit-transform: rotate3d(0, 0, 1, 0deg);
48
+ transform: rotate3d(0, 0, 1, 0deg);
49
+ }
50
+ }
css/animations/fancy-tada.css ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-fancy-tada {
2
+ animation: fl-fancy-tada 1s ease;
3
+ -webkit-animation: fl-fancy-tada 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-fancy-tada {
6
+ from {
7
+ -webkit-transform: scale3d(1, 1, 1);
8
+ transform: scale3d(1, 1, 1);
9
+ }
10
+ 10%,
11
+ 20% {
12
+ -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
13
+ transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
14
+ }
15
+ 30%,
16
+ 50%,
17
+ 70%,
18
+ 90% {
19
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
20
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
21
+ }
22
+ 40%,
23
+ 60%,
24
+ 80% {
25
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
26
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
27
+ }
28
+ to {
29
+ -webkit-transform: scale3d(1, 1, 1);
30
+ transform: scale3d(1, 1, 1);
31
+ }
32
+ }
33
+ @keyframes fl-fancy-tada {
34
+ from {
35
+ -webkit-transform: scale3d(1, 1, 1);
36
+ transform: scale3d(1, 1, 1);
37
+ }
38
+ 10%,
39
+ 20% {
40
+ -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
41
+ transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
42
+ }
43
+ 30%,
44
+ 50%,
45
+ 70%,
46
+ 90% {
47
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
48
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
49
+ }
50
+ 40%,
51
+ 60%,
52
+ 80% {
53
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
54
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
55
+ }
56
+ to {
57
+ -webkit-transform: scale3d(1, 1, 1);
58
+ transform: scale3d(1, 1, 1);
59
+ }
60
+ }
css/animations/fancy-wobble.css ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-fancy-wobble {
2
+ animation: fl-fancy-wobble 1s ease;
3
+ -webkit-animation: fl-fancy-wobble 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-fancy-wobble {
6
+ from {
7
+ -webkit-transform: translate3d(0, 0, 0);
8
+ transform: translate3d(0, 0, 0);
9
+ }
10
+ 15% {
11
+ -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
12
+ transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
13
+ }
14
+ 30% {
15
+ -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
16
+ transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
17
+ }
18
+ 45% {
19
+ -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
20
+ transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
21
+ }
22
+ 60% {
23
+ -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
24
+ transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
25
+ }
26
+ 75% {
27
+ -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
28
+ transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
29
+ }
30
+ to {
31
+ -webkit-transform: translate3d(0, 0, 0);
32
+ transform: translate3d(0, 0, 0);
33
+ }
34
+ }
35
+ @keyframes fl-fancy-wobble {
36
+ from {
37
+ -webkit-transform: translate3d(0, 0, 0);
38
+ transform: translate3d(0, 0, 0);
39
+ }
40
+ 15% {
41
+ -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
42
+ transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
43
+ }
44
+ 30% {
45
+ -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
46
+ transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
47
+ }
48
+ 45% {
49
+ -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
50
+ transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
51
+ }
52
+ 60% {
53
+ -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
54
+ transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
55
+ }
56
+ 75% {
57
+ -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
58
+ transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
59
+ }
60
+ to {
61
+ -webkit-transform: translate3d(0, 0, 0);
62
+ transform: translate3d(0, 0, 0);
63
+ }
64
+ }
css/animations/flip-horizontal.css ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-flip-horizontal {
2
+ animation: fl-flip-horizontal 1s ease;
3
+ -webkit-animation: fl-flip-horizontal 1s ease;
4
+ backface-visibility: visible !important;
5
+ -webkit-backface-visibility: visible !important;
6
+ }
7
+ @-webkit-keyframes fl-flip-horizontal {
8
+ from {
9
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
10
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
11
+ -webkit-animation-timing-function: ease-in;
12
+ animation-timing-function: ease-in;
13
+ opacity: 0;
14
+ }
15
+ 40% {
16
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
17
+ transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
18
+ -webkit-animation-timing-function: ease-in;
19
+ animation-timing-function: ease-in;
20
+ }
21
+ 60% {
22
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
23
+ transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
24
+ opacity: 1;
25
+ }
26
+ 80% {
27
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
28
+ transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
29
+ }
30
+ to {
31
+ -webkit-transform: perspective(400px);
32
+ transform: perspective(400px);
33
+ }
34
+ }
35
+ @keyframes fl-flip-horizontal {
36
+ from {
37
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
38
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
39
+ -webkit-animation-timing-function: ease-in;
40
+ animation-timing-function: ease-in;
41
+ opacity: 0;
42
+ }
43
+ 40% {
44
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
45
+ transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
46
+ -webkit-animation-timing-function: ease-in;
47
+ animation-timing-function: ease-in;
48
+ }
49
+ 60% {
50
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
51
+ transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
52
+ opacity: 1;
53
+ }
54
+ 80% {
55
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
56
+ transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
57
+ }
58
+ to {
59
+ -webkit-transform: perspective(400px);
60
+ transform: perspective(400px);
61
+ }
62
+ }
css/animations/flip-vertical.css ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-flip-vertical {
2
+ animation: fl-flip-vertical 1s ease;
3
+ -webkit-animation: fl-flip-vertical 1s ease;
4
+ backface-visibility: visible !important;
5
+ -webkit-backface-visibility: visible !important;
6
+ }
7
+ @-webkit-keyframes fl-flip-vertical {
8
+ from {
9
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
10
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
11
+ -webkit-animation-timing-function: ease-in;
12
+ animation-timing-function: ease-in;
13
+ opacity: 0;
14
+ }
15
+ 40% {
16
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
17
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
18
+ -webkit-animation-timing-function: ease-in;
19
+ animation-timing-function: ease-in;
20
+ }
21
+ 60% {
22
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
23
+ transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
24
+ opacity: 1;
25
+ }
26
+ 80% {
27
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
28
+ transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
29
+ }
30
+ to {
31
+ -webkit-transform: perspective(400px);
32
+ transform: perspective(400px);
33
+ }
34
+ }
35
+ @keyframes fl-flip-vertical {
36
+ from {
37
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
38
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
39
+ -webkit-animation-timing-function: ease-in;
40
+ animation-timing-function: ease-in;
41
+ opacity: 0;
42
+ }
43
+ 40% {
44
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
45
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
46
+ -webkit-animation-timing-function: ease-in;
47
+ animation-timing-function: ease-in;
48
+ }
49
+ 60% {
50
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
51
+ transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
52
+ opacity: 1;
53
+ }
54
+ 80% {
55
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
56
+ transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
57
+ }
58
+ to {
59
+ -webkit-transform: perspective(400px);
60
+ transform: perspective(400px);
61
+ }
62
+ }
css/animations/rotate-down-left.css ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-rotate-down-left {
2
+ animation: fl-rotate-down-left 1s ease;
3
+ -webkit-animation: fl-rotate-down-left 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-rotate-down-left {
6
+ from {
7
+ -webkit-transform-origin: left bottom;
8
+ transform-origin: left bottom;
9
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
10
+ transform: rotate3d(0, 0, 1, -45deg);
11
+ opacity: 0;
12
+ }
13
+ to {
14
+ -webkit-transform-origin: left bottom;
15
+ transform-origin: left bottom;
16
+ -webkit-transform: translate3d(0, 0, 0);
17
+ transform: translate3d(0, 0, 0);
18
+ opacity: 1;
19
+ }
20
+ }
21
+ @keyframes fl-rotate-down-left {
22
+ from {
23
+ -webkit-transform-origin: left bottom;
24
+ transform-origin: left bottom;
25
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
26
+ transform: rotate3d(0, 0, 1, -45deg);
27
+ opacity: 0;
28
+ }
29
+ to {
30
+ -webkit-transform-origin: left bottom;
31
+ transform-origin: left bottom;
32
+ -webkit-transform: translate3d(0, 0, 0);
33
+ transform: translate3d(0, 0, 0);
34
+ opacity: 1;
35
+ }
36
+ }
css/animations/rotate-down-right.css ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-rotate-down-right {
2
+ animation: fl-rotate-down-right 1s ease;
3
+ -webkit-animation: fl-rotate-down-right 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-rotate-down-right {
6
+ from {
7
+ -webkit-transform-origin: right bottom;
8
+ transform-origin: right bottom;
9
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
10
+ transform: rotate3d(0, 0, 1, 45deg);
11
+ opacity: 0;
12
+ }
13
+ to {
14
+ -webkit-transform-origin: right bottom;
15
+ transform-origin: right bottom;
16
+ -webkit-transform: translate3d(0, 0, 0);
17
+ transform: translate3d(0, 0, 0);
18
+ opacity: 1;
19
+ }
20
+ }
21
+ @keyframes fl-rotate-down-right {
22
+ from {
23
+ -webkit-transform-origin: right bottom;
24
+ transform-origin: right bottom;
25
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
26
+ transform: rotate3d(0, 0, 1, 45deg);
27
+ opacity: 0;
28
+ }
29
+ to {
30
+ -webkit-transform-origin: right bottom;
31
+ transform-origin: right bottom;
32
+ -webkit-transform: translate3d(0, 0, 0);
33
+ transform: translate3d(0, 0, 0);
34
+ opacity: 1;
35
+ }
36
+ }
css/animations/rotate-in.css ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-rotate-in {
2
+ animation: fl-rotate-in 1s ease;
3
+ -webkit-animation: fl-rotate-in 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-rotate-in {
6
+ from {
7
+ -webkit-transform-origin: center;
8
+ transform-origin: center;
9
+ -webkit-transform: rotate3d(0, 0, 1, -200deg);
10
+ transform: rotate3d(0, 0, 1, -200deg);
11
+ opacity: 0;
12
+ }
13
+ to {
14
+ -webkit-transform-origin: center;
15
+ transform-origin: center;
16
+ -webkit-transform: translate3d(0, 0, 0);
17
+ transform: translate3d(0, 0, 0);
18
+ opacity: 1;
19
+ }
20
+ }
21
+ @keyframes fl-rotate-in {
22
+ from {
23
+ -webkit-transform-origin: center;
24
+ transform-origin: center;
25
+ -webkit-transform: rotate3d(0, 0, 1, -200deg);
26
+ transform: rotate3d(0, 0, 1, -200deg);
27
+ opacity: 0;
28
+ }
29
+ to {
30
+ -webkit-transform-origin: center;
31
+ transform-origin: center;
32
+ -webkit-transform: translate3d(0, 0, 0);
33
+ transform: translate3d(0, 0, 0);
34
+ opacity: 1;
35
+ }
36
+ }
css/animations/rotate-up-left.css ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-rotate-up-left {
2
+ animation: fl-rotate-up-left 1s ease;
3
+ -webkit-animation: fl-rotate-up-left 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-rotate-up-left {
6
+ from {
7
+ -webkit-transform-origin: left bottom;
8
+ transform-origin: left bottom;
9
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
10
+ transform: rotate3d(0, 0, 1, 45deg);
11
+ opacity: 0;
12
+ }
13
+ to {
14
+ -webkit-transform-origin: left bottom;
15
+ transform-origin: left bottom;
16
+ -webkit-transform: translate3d(0, 0, 0);
17
+ transform: translate3d(0, 0, 0);
18
+ opacity: 1;
19
+ }
20
+ }
21
+ @keyframes fl-rotate-up-left {
22
+ from {
23
+ -webkit-transform-origin: left bottom;
24
+ transform-origin: left bottom;
25
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
26
+ transform: rotate3d(0, 0, 1, 45deg);
27
+ opacity: 0;
28
+ }
29
+ to {
30
+ -webkit-transform-origin: left bottom;
31
+ transform-origin: left bottom;
32
+ -webkit-transform: translate3d(0, 0, 0);
33
+ transform: translate3d(0, 0, 0);
34
+ opacity: 1;
35
+ }
36
+ }
css/animations/rotate-up-right.css ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-rotate-up-right {
2
+ animation: fl-rotate-up-right 1s ease;
3
+ -webkit-animation: fl-rotate-up-right 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-rotate-up-right {
6
+ from {
7
+ -webkit-transform-origin: right bottom;
8
+ transform-origin: right bottom;
9
+ -webkit-transform: rotate3d(0, 0, 1, -90deg);
10
+ transform: rotate3d(0, 0, 1, -90deg);
11
+ opacity: 0;
12
+ }
13
+ to {
14
+ -webkit-transform-origin: right bottom;
15
+ transform-origin: right bottom;
16
+ -webkit-transform: translate3d(0, 0, 0);
17
+ transform: translate3d(0, 0, 0);
18
+ opacity: 1;
19
+ }
20
+ }
21
+ @keyframes fl-rotate-up-right {
22
+ from {
23
+ -webkit-transform-origin: right bottom;
24
+ transform-origin: right bottom;
25
+ -webkit-transform: rotate3d(0, 0, 1, -90deg);
26
+ transform: rotate3d(0, 0, 1, -90deg);
27
+ opacity: 0;
28
+ }
29
+ to {
30
+ -webkit-transform-origin: right bottom;
31
+ transform-origin: right bottom;
32
+ -webkit-transform: translate3d(0, 0, 0);
33
+ transform: translate3d(0, 0, 0);
34
+ opacity: 1;
35
+ }
36
+ }
css/animations/slide-in-down.css ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-slide-in-down {
2
+ animation: fl-slide-in-down 1s ease;
3
+ -webkit-animation: fl-slide-in-down 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-slide-in-down {
6
+ from {
7
+ -webkit-transform: translate3d(0, -50%, 0);
8
+ transform: translate3d(0, -50%, 0);
9
+ visibility: visible;
10
+ }
11
+ to {
12
+ -webkit-transform: translate3d(0, 0, 0);
13
+ transform: translate3d(0, 0, 0);
14
+ }
15
+ }
16
+ @keyframes fl-slide-in-down {
17
+ from {
18
+ -webkit-transform: translate3d(0, -50%, 0);
19
+ transform: translate3d(0, -50%, 0);
20
+ visibility: visible;
21
+ }
22
+ to {
23
+ -webkit-transform: translate3d(0, 0, 0);
24
+ transform: translate3d(0, 0, 0);
25
+ }
26
+ }
css/animations/slide-in-left.css ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-slide-in-left {
2
+ animation: fl-slide-in-left 1s ease;
3
+ -webkit-animation: fl-slide-in-left 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-slide-in-left {
6
+ from {
7
+ -webkit-transform: translate3d(-50%, 0, 0);
8
+ transform: translate3d(-50%, 0, 0);
9
+ visibility: visible;
10
+ }
11
+ to {
12
+ -webkit-transform: translate3d(0, 0, 0);
13
+ transform: translate3d(0, 0, 0);
14
+ }
15
+ }
16
+ @keyframes fl-slide-in-left {
17
+ from {
18
+ -webkit-transform: translate3d(-50%, 0, 0);
19
+ transform: translate3d(-50%, 0, 0);
20
+ visibility: visible;
21
+ }
22
+ to {
23
+ -webkit-transform: translate3d(0, 0, 0);
24
+ transform: translate3d(0, 0, 0);
25
+ }
26
+ }
css/animations/slide-in-right.css ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-slide-in-right {
2
+ animation: fl-slide-in-right 1s ease;
3
+ -webkit-animation: fl-slide-in-right 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-slide-in-right {
6
+ from {
7
+ -webkit-transform: translate3d(50%, 0, 0);
8
+ transform: translate3d(50%, 0, 0);
9
+ visibility: visible;
10
+ }
11
+ to {
12
+ -webkit-transform: translate3d(0, 0, 0);
13
+ transform: translate3d(0, 0, 0);
14
+ }
15
+ }
16
+ @keyframes fl-slide-in-right {
17
+ from {
18
+ -webkit-transform: translate3d(50%, 0, 0);
19
+ transform: translate3d(50%, 0, 0);
20
+ visibility: visible;
21
+ }
22
+ to {
23
+ -webkit-transform: translate3d(0, 0, 0);
24
+ transform: translate3d(0, 0, 0);
25
+ }
26
+ }
css/animations/slide-in-up.css ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-slide-in-up {
2
+ animation: fl-slide-in-up 1s ease;
3
+ -webkit-animation: fl-slide-in-up 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-slide-in-up {
6
+ from {
7
+ -webkit-transform: translate3d(0, 50%, 0);
8
+ transform: translate3d(0, 50%, 0);
9
+ visibility: visible;
10
+ }
11
+ to {
12
+ -webkit-transform: translate3d(0, 0, 0);
13
+ transform: translate3d(0, 0, 0);
14
+ }
15
+ }
16
+ @keyframes fl-slide-in-up {
17
+ from {
18
+ -webkit-transform: translate3d(0, 50%, 0);
19
+ transform: translate3d(0, 50%, 0);
20
+ visibility: visible;
21
+ }
22
+ to {
23
+ -webkit-transform: translate3d(0, 0, 0);
24
+ transform: translate3d(0, 0, 0);
25
+ }
26
+ }
css/animations/zoom-down.css ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-zoom-down {
2
+ animation: fl-zoom-down 1s ease;
3
+ -webkit-animation: fl-zoom-down 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-zoom-down {
6
+ from {
7
+ opacity: 0;
8
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
9
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
10
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
11
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
12
+ }
13
+ 60% {
14
+ opacity: 1;
15
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
16
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
17
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
18
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
19
+ }
20
+ }
21
+ @keyframes fl-zoom-down {
22
+ from {
23
+ opacity: 0;
24
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
25
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
26
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
27
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
28
+ }
29
+ 60% {
30
+ opacity: 1;
31
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
32
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
33
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
34
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
35
+ }
36
+ }
css/animations/zoom-in.css ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-zoom-in {
2
+ animation: fl-zoom-in 1s ease;
3
+ -webkit-animation: fl-zoom-in 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-zoom-in {
6
+ from {
7
+ opacity: 0;
8
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
9
+ transform: scale3d(0.3, 0.3, 0.3);
10
+ }
11
+ 50% {
12
+ opacity: 1;
13
+ }
14
+ }
15
+ @keyframes fl-zoom-in {
16
+ from {
17
+ opacity: 0;
18
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
19
+ transform: scale3d(0.3, 0.3, 0.3);
20
+ }
21
+ 50% {
22
+ opacity: 1;
23
+ }
24
+ }
css/animations/zoom-left.css ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-zoom-left {
2
+ animation: fl-zoom-left 1s ease;
3
+ -webkit-animation: fl-zoom-left 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-zoom-left {
6
+ from {
7
+ opacity: 0;
8
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
9
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
10
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
11
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
12
+ }
13
+ 60% {
14
+ opacity: 1;
15
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
16
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
17
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
18
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
19
+ }
20
+ }
21
+ @keyframes fl-zoom-left {
22
+ from {
23
+ opacity: 0;
24
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
25
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
26
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
27
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
28
+ }
29
+ 60% {
30
+ opacity: 1;
31
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
32
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
33
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
34
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
35
+ }
36
+ }
css/animations/zoom-right.css ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-zoom-right {
2
+ animation: fl-zoom-right 1s ease;
3
+ -webkit-animation: fl-zoom-right 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-zoom-right {
6
+ from {
7
+ opacity: 0;
8
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
9
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
10
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
11
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
12
+ }
13
+ 60% {
14
+ opacity: 1;
15
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
16
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
17
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
18
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
19
+ }
20
+ }
21
+ @keyframes fl-zoom-right {
22
+ from {
23
+ opacity: 0;
24
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
25
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
26
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
27
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
28
+ }
29
+ 60% {
30
+ opacity: 1;
31
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
32
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
33
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
34
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
35
+ }
36
+ }
css/animations/zoom-up.css ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fl-animated.fl-zoom-up {
2
+ animation: fl-zoom-up 1s ease;
3
+ -webkit-animation: fl-zoom-up 1s ease;
4
+ }
5
+ @-webkit-keyframes fl-zoom-up {
6
+ from {
7
+ opacity: 0;
8
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
9
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
10
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
11
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
12
+ }
13
+ 60% {
14
+ opacity: 1;
15
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
16
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
17
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
18
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
19
+ }
20
+ }
21
+ @keyframes fl-zoom-up {
22
+ from {
23
+ opacity: 0;
24
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
25
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
26
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
27
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
28
+ }
29
+ 60% {
30
+ opacity: 1;
31
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
32
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
33
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
34
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
35
+ }
36
+ }
css/build/builder.bundle.css CHANGED
@@ -84,7 +84,9 @@
84
  border-color: rgba(255, 255, 255, 0.4);
85
  box-shadow: none; }
86
  .fl-inline-editor .mce-toolbar .mce-btn button {
87
- padding: 1px; }
 
 
88
  .fl-inline-editor .mce-toolbar .mce-btn .mce-ico {
89
  color: rgba(255, 255, 255, 0.8) !important; }
90
  .fl-inline-editor .mce-toolbar .mce-btn:hover .mce-ico {
@@ -104,13 +106,14 @@
104
  display: none !important; }
105
  .fl-notifications-panel {
106
  position: fixed;
107
- top: 48px;
 
108
  left: 0;
109
  bottom: 0;
110
  width: 380px;
111
  background: #F5F7F9;
112
  color: #555555;
113
- border-right: 2px solid #d5dadd;
114
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
115
  font-size: 14px;
116
  z-index: 999999;
@@ -163,6 +166,11 @@
163
 
164
  .fl-builder-has-new-notifications #bell-active-dot {
165
  visibility: visible; }
 
 
 
 
 
166
  /**
167
  * This file is just here for demonstration purposes while we get
168
  * our Webpack workflow going. In the future styles should probably
84
  border-color: rgba(255, 255, 255, 0.4);
85
  box-shadow: none; }
86
  .fl-inline-editor .mce-toolbar .mce-btn button {
87
+ padding: 1px;
88
+ background: transparent;
89
+ border: none; }
90
  .fl-inline-editor .mce-toolbar .mce-btn .mce-ico {
91
  color: rgba(255, 255, 255, 0.8) !important; }
92
  .fl-inline-editor .mce-toolbar .mce-btn:hover .mce-ico {
106
  display: none !important; }
107
  .fl-notifications-panel {
108
  position: fixed;
109
+ top: calc( 44px + 1px);
110
+ /* top bar plus border */
111
  left: 0;
112
  bottom: 0;
113
  width: 380px;
114
  background: #F5F7F9;
115
  color: #555555;
116
+ border-right: 1px solid #d5dadd;
117
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
118
  font-size: 14px;
119
  z-index: 999999;
166
 
167
  .fl-builder-has-new-notifications #bell-active-dot {
168
  visibility: visible; }
169
+ svg.fl-symbol {
170
+ flex: 0 0 auto; }
171
+
172
+ svg#fl-symbol-container {
173
+ display: none; }
174
  /**
175
  * This file is just here for demonstration purposes while we get
176
  * our Webpack workflow going. In the future styles should probably
css/build/builder.bundle.min.css CHANGED
@@ -1 +1 @@
1
- .fl-editable{position:relative;-webkit-user-select:text}.fl-editable .mce-content-body,.fl-editable .mce-content-body *{cursor:text}.fl-editable .mce-content-body:not(.mce-edit-focus):empty{height:0}.fl-editable .mce-content-body:not(.mce-edit-focus) [data-mce-selected]{background:none}.fl-editable .mce-content-body,.fl-editable .mce-content-body:focus,.fl-editable .mce-edit-focus{outline:none!important}.fl-editable-focused.fl-module{cursor:pointer}.fl-editable-focused .fl-block-overlay{pointer-events:none}.fl-editable-focused .fl-block-col-resize,.fl-editable-focused .fl-block-overlay-actions{pointer-events:auto}.fl-inline-editor{border:2px solid #00a0d2;border-radius:4px;display:none;overflow:hidden;pointer-events:none;position:absolute;top:-32px;right:4px;bottom:4px;left:4px;z-index:100008}.fl-inline-editor.fl-inline-editor-no-toolbar{top:4px}.fl-inline-editor.fl-inline-editor-no-toolbar>.mce-tinymce{display:none}.fl-inline-editor>.mce-tinymce.fl-inline-editor-active-toolbar{display:block!important}.fl-inline-editor>.mce-tinymce{background:transparent;border:none!important;overflow:hidden;pointer-events:auto;position:absolute;top:-2px!important;right:-2px!important;left:-2px!important;width:auto!important}.fl-inline-editor .mce-container-body,.fl-inline-editor .mce-tinymce,.fl-inline-editor .mce-toolbar-grp{height:32px!important;width:auto!important}.fl-inline-editor .mce-container-body{padding:0}.fl-inline-editor .mce-toolbar-grp{background:#00a0d2;border:none;border-top-left-radius:4px;border-bottom-right-radius:4px;width:auto!important;display:inline-block}.fl-inline-editor .mce-tinymce-inline .mce-flow-layout{white-space:normal}.fl-inline-editor .mce-btn-group{padding:0 3px}.fl-inline-editor .mce-btn-group:not(:first-child){border-color:hsla(0,0%,100%,.3)}.fl-inline-editor .mce-toolbar .mce-btn-group .mce-btn.mce-active,.fl-inline-editor .mce-toolbar .mce-btn-group .mce-btn.mce-active:focus,.fl-inline-editor .mce-toolbar .mce-btn-group .mce-btn.mce-active:hover,.fl-inline-editor .mce-toolbar .mce-btn-group .mce-btn:active,.fl-inline-editor .mce-toolbar .mce-btn-group .mce-btn:focus,.fl-inline-editor .mce-toolbar .mce-btn-group .mce-btn:hover{background:hsla(0,0%,100%,.2);border-color:hsla(0,0%,100%,.4);box-shadow:none}.fl-inline-editor .mce-toolbar .mce-btn button{padding:1px}.fl-inline-editor .mce-toolbar .mce-btn .mce-ico{color:hsla(0,0%,100%,.8)!important}.fl-inline-editor .mce-toolbar .mce-btn:hover .mce-ico{color:#fff!important}.fl-inline-editor .mce-panel .mce-btn i.mce-caret{border-top-color:hsla(0,0%,100%,.8)!important;border-bottom-color:hsla(0,0%,100%,.8)!important}.fl-inline-editor .mce-panel .mce-btn:hover i.mce-caret{border-top-color:#fff!important}.fl-heading-text.mce-content-body{display:block}.mce-tooltip{display:none!important}.fl-notifications-panel{position:fixed;top:48px;left:0;bottom:0;width:380px;background:#f5f7f9;color:#555;border-right:2px solid #d5dadd;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif!important;font-size:14px;z-index:999999;display:flex;flex-direction:column}.fl-notifications-panel .fl-nanoscroller .fl-nanoscroller-content{padding:0 15px}.fl-notifications-panel .fl-panel-title{flex:0 0 auto;padding:15px 30px;font-size:18px}.fl-notifications-panel .fl-builder-ui-post{flex:0 0 auto;display:flex;display:block;padding:15px;margin:15px 0;border-radius:4px;text-decoration:none;color:inherit}.fl-notifications-panel .fl-builder-ui-post:first-child{margin-top:0}.fl-notifications-panel .fl-builder-ui-post:hover{text-decoration:none;background:#fff;color:#000}.fl-notifications-panel .fl-builder-ui-post .fl-builder-ui-post-title{font-size:17px;line-height:1.4;margin-bottom:10px;color:#0089b4}.fl-notifications-panel .fl-builder-ui-post .fl-builder-ui-post-date{text-transform:uppercase;font-size:12px;font-weight:700;margin-bottom:10px}.fl-notifications-panel .fl-panel-loading-message{padding:0 15px;align-items:center;justify-content:center;display:flex;height:100%}.fl-builder-bar-spacer{flex:1 1 100%}#bell-active-dot{visibility:hidden}.fl-builder-has-new-notifications #bell-active-dot{visibility:visible}
1
+ .fl-editable{position:relative;-webkit-user-select:text}.fl-editable .mce-content-body,.fl-editable .mce-content-body *{cursor:text}.fl-editable .mce-content-body:not(.mce-edit-focus):empty{height:0}.fl-editable .mce-content-body:not(.mce-edit-focus) [data-mce-selected]{background:none}.fl-editable .mce-content-body,.fl-editable .mce-content-body:focus,.fl-editable .mce-edit-focus{outline:none!important}.fl-editable-focused.fl-module{cursor:pointer}.fl-editable-focused .fl-block-overlay{pointer-events:none}.fl-editable-focused .fl-block-col-resize,.fl-editable-focused .fl-block-overlay-actions{pointer-events:auto}.fl-inline-editor{border:2px solid #00a0d2;border-radius:4px;display:none;overflow:hidden;pointer-events:none;position:absolute;top:-32px;right:4px;bottom:4px;left:4px;z-index:100008}.fl-inline-editor.fl-inline-editor-no-toolbar{top:4px}.fl-inline-editor.fl-inline-editor-no-toolbar>.mce-tinymce{display:none}.fl-inline-editor>.mce-tinymce.fl-inline-editor-active-toolbar{display:block!important}.fl-inline-editor>.mce-tinymce{background:transparent;border:none!important;overflow:hidden;pointer-events:auto;position:absolute;top:-2px!important;right:-2px!important;left:-2px!important;width:auto!important}.fl-inline-editor .mce-container-body,.fl-inline-editor .mce-tinymce,.fl-inline-editor .mce-toolbar-grp{height:32px!important;width:auto!important}.fl-inline-editor .mce-container-body{padding:0}.fl-inline-editor .mce-toolbar-grp{background:#00a0d2;border:none;border-top-left-radius:4px;border-bottom-right-radius:4px;width:auto!important;display:inline-block}.fl-inline-editor .mce-tinymce-inline .mce-flow-layout{white-space:normal}.fl-inline-editor .mce-btn-group{padding:0 3px}.fl-inline-editor .mce-btn-group:not(:first-child){border-color:hsla(0,0%,100%,.3)}.fl-inline-editor .mce-toolbar .mce-btn-group .mce-btn.mce-active,.fl-inline-editor .mce-toolbar .mce-btn-group .mce-btn.mce-active:focus,.fl-inline-editor .mce-toolbar .mce-btn-group .mce-btn.mce-active:hover,.fl-inline-editor .mce-toolbar .mce-btn-group .mce-btn:active,.fl-inline-editor .mce-toolbar .mce-btn-group .mce-btn:focus,.fl-inline-editor .mce-toolbar .mce-btn-group .mce-btn:hover{background:hsla(0,0%,100%,.2);border-color:hsla(0,0%,100%,.4);box-shadow:none}.fl-inline-editor .mce-toolbar .mce-btn button{padding:1px;background:transparent;border:none}.fl-inline-editor .mce-toolbar .mce-btn .mce-ico{color:hsla(0,0%,100%,.8)!important}.fl-inline-editor .mce-toolbar .mce-btn:hover .mce-ico{color:#fff!important}.fl-inline-editor .mce-panel .mce-btn i.mce-caret{border-top-color:hsla(0,0%,100%,.8)!important;border-bottom-color:hsla(0,0%,100%,.8)!important}.fl-inline-editor .mce-panel .mce-btn:hover i.mce-caret{border-top-color:#fff!important}.fl-heading-text.mce-content-body{display:block}.mce-tooltip{display:none!important}.fl-notifications-panel{position:fixed;top:45px;left:0;bottom:0;width:380px;background:#f5f7f9;color:#555;border-right:1px solid #d5dadd;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif!important;font-size:14px;z-index:999999;display:flex;flex-direction:column}.fl-notifications-panel .fl-nanoscroller .fl-nanoscroller-content{padding:0 15px}.fl-notifications-panel .fl-panel-title{flex:0 0 auto;padding:15px 30px;font-size:18px}.fl-notifications-panel .fl-builder-ui-post{flex:0 0 auto;display:flex;display:block;padding:15px;margin:15px 0;border-radius:4px;text-decoration:none;color:inherit}.fl-notifications-panel .fl-builder-ui-post:first-child{margin-top:0}.fl-notifications-panel .fl-builder-ui-post:hover{text-decoration:none;background:#fff;color:#000}.fl-notifications-panel .fl-builder-ui-post .fl-builder-ui-post-title{font-size:17px;line-height:1.4;margin-bottom:10px;color:#0089b4}.fl-notifications-panel .fl-builder-ui-post .fl-builder-ui-post-date{text-transform:uppercase;font-size:12px;font-weight:700;margin-bottom:10px}.fl-notifications-panel .fl-panel-loading-message{padding:0 15px;align-items:center;justify-content:center;display:flex;height:100%}.fl-builder-bar-spacer{flex:1 1 100%}#bell-active-dot{visibility:hidden}.fl-builder-has-new-notifications #bell-active-dot{visibility:visible}svg.fl-symbol{flex:0 0 auto}svg#fl-symbol-container{display:none}
css/editor.css CHANGED
@@ -1,3 +1,8 @@
1
  * {
2
  line-height: 1.3em;
3
- }
 
 
 
 
 
1
  * {
2
  line-height: 1.3em;
3
+ }
4
+ body {
5
+ margin: 16px 20px;
6
+ margin-right: 30px; /* dodge field connections toggle */
7
+ font-family: system-ui, ---apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
8
+ }
css/fl-builder-layout.css CHANGED
@@ -158,6 +158,7 @@
158
 
159
  /* Row Bg Overlay */
160
  .fl-row-bg-overlay .fl-row-content-wrap:after {
 
161
  content: '';
162
  display: block;
163
  position: absolute;
@@ -173,7 +174,8 @@
173
  }
174
 
175
  /* Full Height Rows */
176
- .fl-row-full-height .fl-row-content-wrap {
 
177
  display: -webkit-box;
178
  display: -webkit-flex;
179
  display: -ms-flexbox;
@@ -181,45 +183,56 @@
181
  min-height: 100vh;
182
 
183
  }
 
 
 
184
  .fl-builder-edit .fl-row-full-height .fl-row-content-wrap {
185
  min-height: calc( 100vh - 48px );
186
  }
187
- .fl-row-full-height .fl-row-content {
 
188
  -webkit-box-flex: 1 1 auto;
189
  -moz-box-flex: 1 1 auto;
190
  -webkit-flex: 1 1 auto;
191
  -ms-flex: 1 1 auto;
192
  flex: 1 1 auto;
193
  }
194
- .fl-row-full-height .fl-row-full-width.fl-row-content {
 
195
  max-width: 100%;
196
  width: 100%;
197
  }
198
 
199
  /* IE 11 - Row full height - vertical alignment center/bottom fix */
200
- .fl-builder-ie-11 .fl-row.fl-row-full-height:not(.fl-visible-medium):not(.fl-visible-medium-mobile):not(.fl-visible-mobile) {
 
201
  display: flex;
202
  flex-direction: column;
203
  height: 100%;
204
  }
205
 
206
  /* Stupid IE Full Height Row Fixes */
207
- .fl-builder-ie-11 .fl-row-full-height .fl-row-content-wrap {
 
208
  height: auto;
209
  }
210
 
211
- .fl-builder-ie-11 .fl-row-full-height .fl-row-content {
 
212
  flex: 0 0 auto;
213
  flex-basis: 100%;
214
  margin: 0;
215
  }
216
 
217
  .fl-builder-ie-11 .fl-row-full-height.fl-row-align-top .fl-row-content,
218
- .fl-builder-ie-11 .fl-row-full-height.fl-row-align-bottom .fl-row-content {
 
 
219
  margin: 0 auto;
220
  }
221
 
222
- .fl-builder-ie-11 .fl-row-full-height.fl-row-align-center .fl-col-group:not(.fl-col-group-equal-height) {
 
223
  display: flex;
224
  align-items: center;
225
  justify-content: center;
@@ -232,7 +245,8 @@
232
  }
233
 
234
  /* Full height align center */
235
- .fl-row-full-height.fl-row-align-center .fl-row-content-wrap {
 
236
  align-items: center;
237
  justify-content: center;
238
  -webkit-align-items: center;
@@ -244,7 +258,8 @@
244
  }
245
 
246
  /* Full height align bottom */
247
- .fl-row-full-height.fl-row-align-bottom .fl-row-content-wrap {
 
248
  align-items: flex-end;
249
  justify-content: flex-end;
250
  -webkit-align-items: flex-end;
@@ -256,7 +271,8 @@
256
  }
257
 
258
  /* IE 11 - height bottom > row align bottom - center fix */
259
- .fl-builder-ie-11 .fl-row-full-height.fl-row-align-bottom .fl-row-content-wrap {
 
260
  justify-content: flex-start;
261
  -webkit-justify-content: flex-start;
262
  }
@@ -379,6 +395,7 @@
379
  position: relative;
380
  }
381
  .fl-col-bg-overlay .fl-col-content:after {
 
382
  content: '';
383
  display: block;
384
  position: absolute;
@@ -480,9 +497,13 @@
480
  }
481
  .fl-icon i {
482
  float: left;
 
 
483
  }
484
  .fl-icon i:before {
485
  border: none !important;
 
 
486
  }
487
  .fl-icon-text {
488
  display: table-cell;
@@ -490,6 +511,9 @@
490
  padding-left: 15px;
491
  vertical-align: middle;
492
  }
 
 
 
493
  .fl-icon-text *:last-child {
494
  margin: 0 !important;
495
  padding: 0 !important;
@@ -497,6 +521,12 @@
497
  .fl-icon-text a {
498
  text-decoration: none;
499
  }
 
 
 
 
 
 
500
 
501
  /* Photos
502
  ------------------------------------------------------ */
@@ -700,106 +730,14 @@ img.mfp-img {
700
  .fl-animation {
701
  opacity: 0;
702
  }
703
- .fl-builder-mobile .fl-animation,
704
- .fl-builder-edit .fl-animation,
705
  .fl-builder-preview .fl-animation,
 
706
  .fl-animated {
707
  opacity: 1;
708
  }
709
-
710
- /* Fade In */
711
- .fl-animated.fl-fade-in {
712
- animation: fl-fade-in 1s ease-out;
713
- -webkit-animation: fl-fade-in 1s ease-out;
714
- -moz-animation: fl-fade-in 1s ease-out;
715
- }
716
- @keyframes fl-fade-in {
717
- 0% { opacity: 0; }
718
- 100% { opacity: 1; }
719
- }
720
- @-webkit-keyframes fl-fade-in {
721
- 0% { opacity: 0; }
722
- 100% { opacity: 1; }
723
- }
724
- @-moz-keyframes fl-fade-in {
725
- 0% { opacity: 0; }
726
- 100% { opacity: 1; }
727
- }
728
-
729
- /* Slide Left */
730
- .fl-animated.fl-slide-left {
731
- animation: fl-slide-left 1s ease-out;
732
- -webkit-animation: fl-slide-left 1s ease-out;
733
- -moz-animation: fl-slide-left 1s ease-out;
734
- }
735
- @keyframes fl-slide-left {
736
- 0% { opacity: 0; transform: translateX(10%); }
737
- 100% { opacity: 1; transform: translateX(0%); }
738
- }
739
- @-webkit-keyframes fl-slide-left {
740
- 0% { opacity: 0; -webkit-transform: translateX(10%); }
741
- 100% { opacity: 1; -webkit-transform: translateX(0%); }
742
- }
743
- @-moz-keyframes fl-slide-left {
744
- 0% { opacity: 0; -moz-transform: translateX(10%); }
745
- 100% { opacity: 1; -moz-transform: translateX(0%); }
746
- }
747
-
748
- /* Slide Right */
749
- .fl-animated.fl-slide-right {
750
- animation: fl-slide-right 1s ease-out;
751
- -webkit-animation: fl-slide-right 1s ease-out;
752
- -moz-animation: fl-slide-right 1s ease-out;
753
- }
754
- @keyframes fl-slide-right {
755
- 0% { opacity: 0; transform: translateX(-10%); }
756
- 100% { opacity: 1; transform: translateX(0%); }
757
- }
758
- @-webkit-keyframes fl-slide-right {
759
- 0% { opacity: 0; -webkit-transform: translateX(-10%); }
760
- 100% { opacity: 1; -webkit-transform: translateX(0%); }
761
- }
762
- @-moz-keyframes fl-slide-right {
763
- 0% { opacity: 0; -moz-transform: translateX(-10%); }
764
- 100% { opacity: 1; -moz-transform: translateX(0%); }
765
- }
766
-
767
- /* Slide Up */
768
- .fl-animated.fl-slide-up {
769
- animation: fl-slide-up 1s ease-out;
770
- -webkit-animation: fl-slide-up 1s ease-out;
771
- -moz-animation: fl-slide-up 1s ease-out;
772
- }
773
- @keyframes fl-slide-up {
774
- 0% { opacity: 0; transform: translateY(10%); }
775
- 100% { opacity: 1; transform: translateY(0%); }
776
- }
777
- @-webkit-keyframes fl-slide-up {
778
- 0% { opacity: 0; -webkit-transform: translateY(10%); }
779
- 100% { opacity: 1; -webkit-transform: translateY(0%); }
780
- }
781
- @-moz-keyframes fl-slide-up {
782
- 0% { opacity: 0; -moz-transform: translateY(10%); }
783
- 100% { opacity: 1; -moz-transform: translateY(0%); }
784
- }
785
-
786
- /* Slide Down */
787
- .fl-animated.fl-slide-down {
788
- animation: fl-slide-down 1s ease-out;
789
- -webkit-animation: fl-slide-down 1s ease-out;
790
- -moz-animation: fl-slide-down 1s ease-out;
791
- }
792
- @keyframes fl-slide-down {
793
- 0% { opacity: 0; transform: translateY(-10%); }
794
- 100% { opacity: 1; transform: translateY(0%); }
795
- }
796
- @-webkit-keyframes fl-slide-down {
797
- 0% { opacity: 0; -webkit-transform: translateY(-10%); }
798
- 100% { opacity: 1; -webkit-transform: translateY(0%); }
799
- }
800
- @-moz-keyframes fl-slide-down {
801
- 0% { opacity: 0; -moz-transform: translateY(-10%); }
802
- 100% { opacity: 1; -moz-transform: translateY(0%); }
803
  }
804
 
805
  /* Button Icon Animation */
@@ -834,3 +772,51 @@ img.mfp-img {
834
  .single:not(.woocommerce).single-fl-builder-template .fl-content {
835
  width: 100%;
836
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
158
 
159
  /* Row Bg Overlay */
160
  .fl-row-bg-overlay .fl-row-content-wrap:after {
161
+ border-radius: inherit;
162
  content: '';
163
  display: block;
164
  position: absolute;
174
  }
175
 
176
  /* Full Height Rows */
177
+ .fl-row-full-height .fl-row-content-wrap,
178
+ .fl-row-custom-height .fl-row-content-wrap {
179
  display: -webkit-box;
180
  display: -webkit-flex;
181
  display: -ms-flexbox;
183
  min-height: 100vh;
184
 
185
  }
186
+ .fl-row-custom-height .fl-row-content-wrap {
187
+ min-height: 0;
188
+ }
189
  .fl-builder-edit .fl-row-full-height .fl-row-content-wrap {
190
  min-height: calc( 100vh - 48px );
191
  }
192
+ .fl-row-full-height .fl-row-content,
193
+ .fl-row-custom-height .fl-row-content {
194
  -webkit-box-flex: 1 1 auto;
195
  -moz-box-flex: 1 1 auto;
196
  -webkit-flex: 1 1 auto;
197
  -ms-flex: 1 1 auto;
198
  flex: 1 1 auto;
199
  }
200
+ .fl-row-full-height .fl-row-full-width.fl-row-content,
201
+ .fl-row-custom-height .fl-row-full-width.fl-row-content {
202
  max-width: 100%;
203
  width: 100%;
204
  }
205
 
206
  /* IE 11 - Row full height - vertical alignment center/bottom fix */
207
+ .fl-builder-ie-11 .fl-row.fl-row-full-height:not(.fl-visible-medium):not(.fl-visible-medium-mobile):not(.fl-visible-mobile),
208
+ .fl-builder-ie-11 .fl-row.fl-row-custom-height:not(.fl-visible-medium):not(.fl-visible-medium-mobile):not(.fl-visible-mobile) {
209
  display: flex;
210
  flex-direction: column;
211
  height: 100%;
212
  }
213
 
214
  /* Stupid IE Full Height Row Fixes */
215
+ .fl-builder-ie-11 .fl-row-full-height .fl-row-content-wrap,
216
+ .fl-builder-ie-11 .fl-row-custom-height .fl-row-content-wrap {
217
  height: auto;
218
  }
219
 
220
+ .fl-builder-ie-11 .fl-row-full-height .fl-row-content,
221
+ .fl-builder-ie-11 .fl-row-custom-height .fl-row-content {
222
  flex: 0 0 auto;
223
  flex-basis: 100%;
224
  margin: 0;
225
  }
226
 
227
  .fl-builder-ie-11 .fl-row-full-height.fl-row-align-top .fl-row-content,
228
+ .fl-builder-ie-11 .fl-row-full-height.fl-row-align-bottom .fl-row-content,
229
+ .fl-builder-ie-11 .fl-row-custom-height.fl-row-align-top .fl-row-content,
230
+ .fl-builder-ie-11 .fl-row-custom-height.fl-row-align-bottom .fl-row-content, {
231
  margin: 0 auto;
232
  }
233
 
234
+ .fl-builder-ie-11 .fl-row-full-height.fl-row-align-center .fl-col-group:not(.fl-col-group-equal-height),
235
+ .fl-builder-ie-11 .fl-row-custom-height.fl-row-align-center .fl-col-group:not(.fl-col-group-equal-height) {
236
  display: flex;
237
  align-items: center;
238
  justify-content: center;
245
  }
246
 
247
  /* Full height align center */
248
+ .fl-row-full-height.fl-row-align-center .fl-row-content-wrap,
249
+ .fl-row-custom-height.fl-row-align-center .fl-row-content-wrap {
250
  align-items: center;
251
  justify-content: center;
252
  -webkit-align-items: center;
258
  }
259
 
260
  /* Full height align bottom */
261
+ .fl-row-full-height.fl-row-align-bottom .fl-row-content-wrap,
262
+ .fl-row-custom-height.fl-row-align-bottom .fl-row-content-wrap {
263
  align-items: flex-end;
264
  justify-content: flex-end;
265
  -webkit-align-items: flex-end;
271
  }
272
 
273
  /* IE 11 - height bottom > row align bottom - center fix */
274
+ .fl-builder-ie-11 .fl-row-full-height.fl-row-align-bottom .fl-row-content-wrap,
275
+ .fl-builder-ie-11 .fl-row-custom-height.fl-row-align-bottom .fl-row-content-wrap {
276
  justify-content: flex-start;
277
  -webkit-justify-content: flex-start;
278
  }
395
  position: relative;
396
  }
397
  .fl-col-bg-overlay .fl-col-content:after {
398
+ border-radius: inherit;
399
  content: '';
400
  display: block;
401
  position: absolute;
497
  }
498
  .fl-icon i {
499
  float: left;
500
+ height: auto;
501
+ width: auto;
502
  }
503
  .fl-icon i:before {
504
  border: none !important;
505
+ height: auto;
506
+ width: auto;
507
  }
508
  .fl-icon-text {
509
  display: table-cell;
511
  padding-left: 15px;
512
  vertical-align: middle;
513
  }
514
+ .fl-icon-text-empty {
515
+ display: none;
516
+ }
517
  .fl-icon-text *:last-child {
518
  margin: 0 !important;
519
  padding: 0 !important;
521
  .fl-icon-text a {
522
  text-decoration: none;
523
  }
524
+ .fl-icon-text span {
525
+ display: block;
526
+ }
527
+ .fl-icon-text span.mce-edit-focus {
528
+ min-width: 1px;
529
+ }
530
 
531
  /* Photos
532
  ------------------------------------------------------ */
730
  .fl-animation {
731
  opacity: 0;
732
  }
 
 
733
  .fl-builder-preview .fl-animation,
734
+ .fl-builder-edit .fl-animation,
735
  .fl-animated {
736
  opacity: 1;
737
  }
738
+ .fl-animated {
739
+ animation-fill-mode: both;
740
+ -webkit-animation-fill-mode: both;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
741
  }
742
 
743
  /* Button Icon Animation */
772
  .single:not(.woocommerce).single-fl-builder-template .fl-content {
773
  width: 100%;
774
  }
775
+
776
+ /* Shapes & Patterns
777
+ ------------------------------------------------------- */
778
+ .fl-builder-layer {
779
+ position: absolute;
780
+ top:0;
781
+ left:0;
782
+ right: 0;
783
+ bottom: 0;
784
+ z-index: 0;
785
+ pointer-events: none;
786
+ overflow: hidden;
787
+ }
788
+ .fl-builder-shape-layer {
789
+ z-index: 0;
790
+ }
791
+ .fl-builder-shape-layer.fl-builder-bottom-edge-layer {
792
+ z-index: 1;
793
+ }
794
+ .fl-row-bg-overlay .fl-builder-shape-layer {
795
+ z-index: 1;
796
+ }
797
+ .fl-row-bg-overlay .fl-builder-shape-layer.fl-builder-bottom-edge-layer {
798
+ z-index: 2;
799
+ }
800
+ .fl-row-has-layers .fl-row-content {
801
+ z-index: 1;
802
+ }
803
+ .fl-row-bg-overlay .fl-row-content {
804
+ z-index: 2;
805
+ }
806
+
807
+ .fl-builder-layer > * {
808
+ display: block;
809
+ position: absolute;
810
+ top:0;
811
+ left:0;
812
+ width: 100%;
813
+ }
814
+ .fl-builder-layer + .fl-row-content {
815
+ position: relative;
816
+ }
817
+ .fl-builder-layer .fl-shape {
818
+ fill: #aaa;
819
+ stroke: none;
820
+ stroke-width: 0;
821
+ width:100%;
822
+ }
css/fl-builder-rtl.css CHANGED
@@ -23,6 +23,17 @@
23
  right: auto;
24
  }
25
 
 
 
 
 
 
 
 
 
 
 
 
26
  /* Settings Forms
27
  ------------------------------------------------------ */
28
 
@@ -33,23 +44,8 @@
33
  .fl-form-table th {
34
  text-align: right !important;
35
  }
36
-
37
- /* Icon Fields
38
- ------------------------------------------------------ */
39
-
40
- .fl-icon-field .fl-icon-preview i {
41
- margin: 10px 2px 9px 10px;
42
- }
43
-
44
- /* Icon Selector
45
- ------------------------------------------------------ */
46
-
47
- .fl-icons-filter {
48
- left: 10px;
49
- right: auto;
50
- }
51
- .fl-icons-section h2 {
52
- text-align: right;
53
  }
54
 
55
  /* Tooltips
@@ -57,7 +53,7 @@
57
 
58
  .fl-help-tooltip-text {
59
  left: auto;
60
- right: 23px;
61
  }
62
 
63
  /* Tour
@@ -85,17 +81,47 @@
85
  left: 10px;
86
  }
87
 
88
- /* Nano Scroller
89
  ------------------------------------------------------ */
90
 
91
- .fl-nanoscroller > .fl-nanoscroller-pane {
92
- right: auto;
93
- left: 2px;
 
 
 
 
94
  }
95
 
96
- /* Color Picker
97
  ------------------------------------------------------ */
98
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99
  .fl-color-picker-preset-add {
100
  right: auto;
101
  left: 8px;
@@ -138,7 +164,105 @@ ul.as-selections li {
138
  float: right;
139
  }
140
 
141
- /* 2.0 RTL Updates ----------------------------- */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
142
  .fl-builder-panel-drag-handle {
143
  right: 10px;
144
  left: auto;
@@ -183,10 +307,6 @@ ul.as-selections li {
183
  padding-top: 6px;
184
  }
185
 
186
- .fl-nanoscroller-content {
187
- right: 17px !important;
188
- }
189
-
190
  .fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col:first-child {
191
  margin-right: 0!important;
192
  margin-left: 2px!important;
@@ -281,11 +401,6 @@ ul.as-selections li {
281
  float: right;
282
  }
283
 
284
- .fl-nanoscroller > .fl-nanoscroller-pane {
285
- right: 2px;
286
- left: auto;
287
- }
288
-
289
  .fl-builder-bar-title {
290
  border-right: none;
291
  border-left: 2px solid #D5DADD;
@@ -345,6 +460,9 @@ ul.as-selections li {
345
  padding-right: 10px;
346
  padding-left: 15px;
347
  }
 
 
 
348
  .fl-photo-field .fl-photo-preview select {
349
  margin: 8px 10px 8px 0;
350
  }
23
  right: auto;
24
  }
25
 
26
+ /* Preview Iframe
27
+ ------------------------------------------------------ */
28
+
29
+ #fl-builder-preview-frame {
30
+ left: 0;
31
+ right: 50%;
32
+ transform: translateX(50%);
33
+ -moz-transform: translateX(50%);
34
+ -webkit-transform: translateX(50%);
35
+ }
36
+
37
  /* Settings Forms
38
  ------------------------------------------------------ */
39
 
44
  .fl-form-table th {
45
  text-align: right !important;
46
  }
47
+ .fl-lightbox-width-slim .fl-form-table {
48
+ margin-right: auto !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
  }
50
 
51
  /* Tooltips
53
 
54
  .fl-help-tooltip-text {
55
  left: auto;
56
+ right: 0;
57
  }
58
 
59
  /* Tour
81
  left: 10px;
82
  }
83
 
84
+ /* Field Action Icons
85
  ------------------------------------------------------ */
86
 
87
+ .fl-field-control-wrapper i.fl-field-responsive-toggle {
88
+ left: auto;
89
+ right: -25px;
90
+ }
91
+ .fl-field-control-wrapper .fl-dimension-field-link {
92
+ left: auto;
93
+ right: -50px;
94
  }
95
 
96
+ /* Color Picker Fields
97
  ------------------------------------------------------ */
98
 
99
+ .fl-color-picker.fl-color-picker-has-reset .fl-color-picker-color:not(.fl-color-picker-empty) {
100
+ border-top-right-radius: 4px;
101
+ border-bottom-right-radius: 4px;
102
+ border-top-left-radius: 0px;
103
+ border-bottom-left-radius: 0px;
104
+ }
105
+ .fl-color-picker-clear {
106
+ border-top-right-radius: 0px;
107
+ border-bottom-right-radius: 0px;
108
+ border-top-left-radius: 4px;
109
+ border-bottom-left-radius: 4px;
110
+ }
111
+
112
+ .fl-color-picker-ui .iris-picker .iris-square {
113
+ margin: 0 auto 0 0;
114
+ }
115
+ .fl-color-picker-ui .iris-picker .iris-strip {
116
+ margin: 5px auto 6px 6px;
117
+ }
118
+ .fl-color-picker-ui .fl-alpha-slider {
119
+ left: 7px;
120
+ }
121
+ .fl-color-picker-ui .fl-alpha-text {
122
+ left: 5px;
123
+ }
124
+
125
  .fl-color-picker-preset-add {
126
  right: auto;
127
  left: 8px;
164
  float: right;
165
  }
166
 
167
+ /* Icon Fields
168
+ ------------------------------------------------------ */
169
+
170
+ .fl-icon-field .fl-icon-preview i {
171
+ margin: 10px 2px 9px 10px;
172
+ }
173
+
174
+ /* Icon Selector
175
+ ------------------------------------------------------ */
176
+
177
+ .fl-icons-filter {
178
+ left: 10px;
179
+ right: auto;
180
+ }
181
+ .fl-icons-section h2 {
182
+ text-align: right;
183
+ }
184
+
185
+ /* Font Fields
186
+ ------------------------------------------------------ */
187
+
188
+ .fl-font-field .fl-font-field-font-wrapper {
189
+ margin-right: 0 !important;
190
+ margin-left: 8px !important;
191
+ }
192
+
193
+ /* Button Group Fields
194
+ ------------------------------------------------------ */
195
+
196
+ .fl-button-group-field-options {
197
+ float: right;
198
+ }
199
+
200
+ /* Compound Fields
201
+ ------------------------------------------------------ */
202
+
203
+ .fl-compound-field-section-toggle .dashicons {
204
+ margin-right: 0;
205
+ margin-left: 5px;
206
+ }
207
+ .fl-compound-field-setting:last-child {
208
+ padding-right: 8px;
209
+ }
210
+ .fl-compound-field-setting:first-child {
211
+ padding-right: 0px;
212
+ }
213
+ .fl-compound-field-setting .fl-unit-field-input select.fl-field-unit-select {
214
+ background-position: center left 4px !important;
215
+ }
216
+
217
+ /* Typography Fields
218
+ ------------------------------------------------------ */
219
+
220
+ .fl-typography-field .fl-shadow-field .fl-color-picker {
221
+ margin: 0 0 0 8px;
222
+ }
223
+
224
+ /* Unit Fields
225
+ ------------------------------------------------------ */
226
+
227
+ .fl-unit-field-inputs input[type],
228
+ .fl-unit-field-inputs .fl-field-unit-select {
229
+ border-top-right-radius: 4px !important;
230
+ border-bottom-right-radius: 4px !important;
231
+ border-top-left-radius: 0px !important;
232
+ border-bottom-left-radius: 0px !important;
233
+ }
234
+ body .fl-unit-field-input:last-child > * {
235
+ border-top-right-radius: 0px !important;
236
+ border-bottom-right-radius: 0px !important;
237
+ border-top-left-radius: 4px !important;
238
+ border-bottom-left-radius: 4px !important;
239
+ }
240
+ body select.fl-field-unit-select {
241
+ background-color: #E7EBEF !important;
242
+ }
243
+
244
+ /* Dimension Fields
245
+ ------------------------------------------------------ */
246
+
247
+ .fl-field[data-type="dimension"] .fl-field-label label {
248
+ padding-left: 35px;
249
+ padding-right: 0;
250
+ }
251
+ body .fl-dimension-field-units > *:first-child > input[type] {
252
+ border-top-right-radius: 4px !important;
253
+ border-bottom-right-radius: 4px !important;
254
+ border-top-left-radius: 0px !important;
255
+ border-bottom-left-radius: 0px !important;
256
+ }
257
+ body .fl-dimension-field-units > *:last-child > * {
258
+ border-top-right-radius: 0px !important;
259
+ border-bottom-right-radius: 0px !important;
260
+ border-top-left-radius: 4px !important;
261
+ border-bottom-left-radius: 4px !important;
262
+ }
263
+
264
+ /* 2.0 RTL Updates
265
+ ------------------------------------------------------ */
266
  .fl-builder-panel-drag-handle {
267
  right: 10px;
268
  left: auto;
307
  padding-top: 6px;
308
  }
309
 
 
 
 
 
310
  .fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col:first-child {
311
  margin-right: 0!important;
312
  margin-left: 2px!important;
401
  float: right;
402
  }
403
 
 
 
 
 
 
404
  .fl-builder-bar-title {
405
  border-right: none;
406
  border-left: 2px solid #D5DADD;
460
  padding-right: 10px;
461
  padding-left: 15px;
462
  }
463
+ .fl-builder-settings-fields .fl-builder-settings-title > svg {
464
+ margin: 0 0 0 7px;
465
+ }
466
  .fl-photo-field .fl-photo-preview select {
467
  margin: 8px 10px 8px 0;
468
  }
css/fl-builder-ui-skin-dark.css CHANGED
@@ -9,7 +9,6 @@ body.fl-builder-ui-skin--dark .fl-builder-bar .fl-builder-bar-content,
9
  border-color: #1d1d1d;
10
  }
11
  .fl-builder-ui-skin--dark .fl-builder--panel-header {
12
- background:#1d2227;
13
  color:#b4b9be;
14
  border-bottom-color: #1d1d1d;
15
  border-top-color: #1d1d1d;
@@ -25,7 +24,7 @@ body.fl-builder-ui-skin--dark .fl-builder-bar .fl-builder-bar-content,
25
  fill: #1d1d1d;
26
  }
27
  .fl-builder-ui-skin--dark .fl-builder-panel-search .fl-builder-panel-search-input {
28
- background: #1e2228;
29
  }
30
  .fl-builder-ui-skin--dark .fl-responsive-preview-content {
31
  background:#131619;
@@ -36,7 +35,7 @@ body.fl-builder-ui-skin--dark .fl-builder-bar .fl-builder-bar-content,
36
  }
37
  .fl-builder-ui-skin--dark .fl-builder-button,
38
  .fl-builder-ui-skin--dark .fl-builder--preview-actions .device-icons {
39
- background: #383f46;
40
  }
41
  .fl-builder-ui-skin--dark .fl-builder-button:focus {
42
  background: #131a22;
@@ -46,6 +45,12 @@ body.fl-builder-ui-skin--dark .fl-builder-bar .fl-builder-bar-content,
46
  fill: white !important;
47
  background: #00A0D2;
48
  }
 
 
 
 
 
 
49
  .fl-builder-ui-skin--dark .fl-builder-button.fl-builder-button-silent:focus {
50
  border: 2px solid #00a0d2 !important;
51
  }
@@ -101,18 +106,18 @@ body.fl-builder-ui-skin--dark .fl-builder-bar .fl-builder-bar-content,
101
  .fl-builder-ui-skin--dark .fl-builder--tabs {
102
  border-color: #383f46 !important;
103
  }
104
- .fl-builder-ui-skin--dark .fl-builder--tabs > *.is-showing,
105
  .fl-builder-ui-skin--dark .fl-builder-settings-tabs a.fl-active,
106
  .fl-builder-ui-skin--dark .fl-builder-settings-tabs-more.fl-contains-active {
107
  color: #ffffff !important;
108
  fill: #ffffff !important;
109
- background: #383f46;
110
  }
111
- .fl-builder-ui-skin--dark .fl-builder--tabs > *:focus {
112
  background-color: #101215 !important;
113
  color: #ffffff !important;
114
  }
115
- .fl-builder-ui-skin--dark .fl-builder--tabs > *.is-showing:focus {
116
  color: #00a0d2 !important;
117
  }
118
 
@@ -126,17 +131,16 @@ body.fl-builder-ui-skin--dark .fl-builder-bar .fl-builder-bar-content,
126
  .fl-builder-ui-skin--dark .fl-builder-blocks-section-group-name {
127
  color: #7d8690;
128
  }
129
- .fl-builder-ui-skin--dark .fl-builder--category-select{
130
- background: #171b1f;
131
- }
132
  .fl-builder-ui-skin--dark .fl-builder--selector-display {
133
  color: #c6cdd6;
134
- background: #171b1f url(../img/svg/select-arrow-down-alt2-light.svg) no-repeat center right 10px !important
 
 
 
135
  }
136
- .fl-builder-ui-skin--dark .fl-builder--selector-display-label,
137
  .fl-builder-ui-skin--dark .fl-builder-panel-search-input input {
138
  border-color: #5b656f;
139
- color: #b5becb;
140
  }
141
  .fl-builder-ui-skin--dark .fl-builder-panel-search-input input {
142
  background: #171b1f !important;
@@ -146,8 +150,8 @@ body.fl-builder-ui-skin--dark .fl-builder-bar .fl-builder-bar-content,
146
  border-color: #00a0d2;
147
  }
148
  .fl-builder-ui-skin--dark .fl-builder--group-label {
149
- color: #171b1f !important;
150
- background: #5b656f;
151
  }
152
  .fl-builder-ui-skin--dark .fl-builder--category-select .fl-builder--selector-menu {
153
  border-color: #101215 !important;
@@ -175,11 +179,23 @@ body.fl-builder-ui-skin--dark .fl-builder-bar .fl-builder-bar-content,
175
  fill: #5b656f;
176
  }
177
 
 
 
 
 
 
 
 
178
  .fl-builder-ui-skin--dark .fl-builder-blocks-section .fl-builder-blocks-section-title,
179
  .fl-builder-ui-skin--dark .fl-builder--template-collection-section-name,
180
  .fl-builder-ui-skin--dark .fl-builder--user-templates-section-name {
181
- color: #969ea7;
182
- background: #171b1f;
 
 
 
 
 
183
  }
184
 
185
  .fl-builder-ui-skin--dark .fl-builder-blocks-section-content .fl-builder-block,
@@ -208,11 +224,6 @@ body.fl-builder-ui-skin--dark .fl-builder-bar .fl-builder-bar-content,
208
  .fl-builder-ui-skin--dark .fl-builder-block:hover .fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col {
209
  background: #7d8690;
210
  }
211
-
212
- .fl-builder-ui-skin--dark .fl-builder-settings-section,
213
- .fl-builder-ui-skin--dark .fl-builder-blocks-section {
214
- border-top: 2px solid #171b1f;
215
- }
216
  .fl-builder-ui-skin--dark .fl-user-templates {
217
  border-color: #101215;
218
  }
@@ -222,10 +233,6 @@ body.fl-builder-ui-skin--dark .fl-builder-bar .fl-builder-bar-content,
222
  .fl-builder-ui-skin--dark .fl-builder--menu a.fl-template-collection {
223
  color: #a8b3bf;
224
  }
225
- .fl-builder-ui-skin--dark .fl-lightbox-header-wrap {
226
- background: #1d2227;
227
- border-bottom-color: #131a22;
228
- }
229
  .fl-builder-ui-skin--dark .fl-lightbox .fl-lightbox-header h1 {
230
  color: white !important
231
  }
@@ -233,17 +240,17 @@ body.fl-builder-ui-skin--dark .fl-builder-bar .fl-builder-bar-content,
233
  color: #a8b3bf !important;
234
  }
235
  .fl-builder-ui-skin--dark .fl-builder-settings-tabs {
236
- border-color: #383f46 !important;
237
  }
238
  .fl-builder-ui-skin--dark .fl-builder-settings-fields h3.fl-builder-settings-title {
239
- background: #1b2025;
240
  }
241
  .fl-builder-ui-skin--dark h3.fl-builder-settings-title .fl-builder-settings-title-text-wrap {
242
  color: #a8b3bf;
243
  background-color: #1b2025;
244
  }
245
  .fl-builder-ui-skin--dark .fl-lightbox *:not(i) {
246
- color: #7d8690 !important;
247
  }
248
  .fl-builder-ui-skin--dark .fl-builder-button {
249
  color: #c6cdd6 !important;
@@ -257,14 +264,14 @@ body.fl-builder-ui-skin--dark .fl-builder-bar .fl-builder-bar-content,
257
  .fl-builder-ui-skin--dark .fl-lightbox .fl-builder-button.fl-builder-button-primary {
258
  color: #ffffff !important;
259
  }
260
- .fl-builder-ui-skin--dark .fl-color-picker {
261
- background: #131a22;
262
  }
263
  .fl-color-picker-color.fl-color-picker-empty .fl-color-picker-icon {
264
  fill:#6f7881;
265
  }
266
  .fl-builder-ui-skin--dark .fl-color-picker-clear {
267
- background-color: #191d21;
268
  }
269
  .fl-builder-ui-skin--dark .fl-color-picker-clear:hover {
270
  background-color: #373f46;
@@ -291,7 +298,7 @@ body.fl-builder-ui-skin--dark .fl-builder-bar .fl-builder-bar-content,
291
  .fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=url],
292
  .fl-builder-ui-skin--dark .fl-builder-settings-fields select,
293
  .fl-builder-ui-skin--dark .fl-builder-custom-field {
294
- background-color: #131a22 !important;
295
  }
296
 
297
  .fl-builder-ui-skin--dark .fl-builder-settings-fields textarea:focus,
@@ -382,11 +389,96 @@ body.fl-builder-ui-skin--dark .fl-builder-bar .fl-builder-bar-content,
382
  border-top: 2px solid #1b2026 !important;
383
  }
384
 
385
- /* Powerpack fix */
386
- .fl-builder-ui-skin--dark .pp-preview-button {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
387
  background: #23282d;
388
- border: 2px solid #101215;
389
  }
390
- .fl-builder-ui-skin--dark .pp-preview-button .pp-preview-button-wrap .fa {
391
- color: #b8bfc7;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
392
  }
9
  border-color: #1d1d1d;
10
  }
11
  .fl-builder-ui-skin--dark .fl-builder--panel-header {
 
12
  color:#b4b9be;
13
  border-bottom-color: #1d1d1d;
14
  border-top-color: #1d1d1d;
24
  fill: #1d1d1d;
25
  }
26
  .fl-builder-ui-skin--dark .fl-builder-panel-search .fl-builder-panel-search-input {
27
+ background: #24282e;
28
  }
29
  .fl-builder-ui-skin--dark .fl-responsive-preview-content {
30
  background:#131619;
35
  }
36
  .fl-builder-ui-skin--dark .fl-builder-button,
37
  .fl-builder-ui-skin--dark .fl-builder--preview-actions .device-icons {
38
+ background: #2c333a;
39
  }
40
  .fl-builder-ui-skin--dark .fl-builder-button:focus {
41
  background: #131a22;
45
  fill: white !important;
46
  background: #00A0D2;
47
  }
48
+ .fl-builder-ui-skin--dark .fl-builder-button.fl-builder-feedback-button,
49
+ .fl-builder-ui-skin--dark .fl-builder-button.fl-builder-buy-button,
50
+ .fl-builder-ui-skin--dark .fl-builder-button.fl-builder-upgrade-button {
51
+ background-color: #F7A407;
52
+ color:white !important;
53
+ }
54
  .fl-builder-ui-skin--dark .fl-builder-button.fl-builder-button-silent:focus {
55
  border: 2px solid #00a0d2 !important;
56
  }
106
  .fl-builder-ui-skin--dark .fl-builder--tabs {
107
  border-color: #383f46 !important;
108
  }
109
+ .fl-builder-ui-skin--dark .fl-builder--tabs *.is-showing,
110
  .fl-builder-ui-skin--dark .fl-builder-settings-tabs a.fl-active,
111
  .fl-builder-ui-skin--dark .fl-builder-settings-tabs-more.fl-contains-active {
112
  color: #ffffff !important;
113
  fill: #ffffff !important;
114
+ background: #181b20 !important;
115
  }
116
+ .fl-builder-ui-skin--dark .fl-builder--tabs *:focus {
117
  background-color: #101215 !important;
118
  color: #ffffff !important;
119
  }
120
+ .fl-builder-ui-skin--dark .fl-builder--tabs *.is-showing:focus {
121
  color: #00a0d2 !important;
122
  }
123
 
131
  .fl-builder-ui-skin--dark .fl-builder-blocks-section-group-name {
132
  color: #7d8690;
133
  }
 
 
 
134
  .fl-builder-ui-skin--dark .fl-builder--selector-display {
135
  color: #c6cdd6;
136
+ background: #1a1b22 url(../img/svg/select-arrow-down-alt2-light.svg) no-repeat center right 10px !important
137
+ }
138
+ .fl-builder-ui-skin--dark .fl-builder--selector-display-label {
139
+ color: #b5becb;
140
  }
 
141
  .fl-builder-ui-skin--dark .fl-builder-panel-search-input input {
142
  border-color: #5b656f;
143
+ color: #b8c2ce;
144
  }
145
  .fl-builder-ui-skin--dark .fl-builder-panel-search-input input {
146
  background: #171b1f !important;
150
  border-color: #00a0d2;
151
  }
152
  .fl-builder-ui-skin--dark .fl-builder--group-label {
153
+ color: #aaafb5 !important;
154
+ background: #24282e;
155
  }
156
  .fl-builder-ui-skin--dark .fl-builder--category-select .fl-builder--selector-menu {
157
  border-color: #101215 !important;
179
  fill: #5b656f;
180
  }
181
 
182
+ .fl-builder-ui-skin--dark .fl-builder-blocks-section .fl-builder-blocks-section-header,
183
+ .fl-builder-ui-skin--dark .fl-builder--template-collection-section-header,
184
+ .fl-builder-ui-skin--dark .fl-builder-settings-section-header {
185
+ background-color: #191b21;
186
+ border-color: #191b21;
187
+ }
188
+ .fl-builder-ui-skin--dark .fl-builder-settings-fields .fl-builder-settings-title,
189
  .fl-builder-ui-skin--dark .fl-builder-blocks-section .fl-builder-blocks-section-title,
190
  .fl-builder-ui-skin--dark .fl-builder--template-collection-section-name,
191
  .fl-builder-ui-skin--dark .fl-builder--user-templates-section-name {
192
+ color: #7d8690 !important;
193
+ fill: #7d8690;
194
+ background: #24282e;
195
+ }
196
+
197
+ .fl-builder-ui-skin--dark .fl-builder-settings-fields .fl-builder-settings-title:focus {
198
+ border-color:#7d8690;
199
  }
200
 
201
  .fl-builder-ui-skin--dark .fl-builder-blocks-section-content .fl-builder-block,
224
  .fl-builder-ui-skin--dark .fl-builder-block:hover .fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col {
225
  background: #7d8690;
226
  }
 
 
 
 
 
227
  .fl-builder-ui-skin--dark .fl-user-templates {
228
  border-color: #101215;
229
  }
233
  .fl-builder-ui-skin--dark .fl-builder--menu a.fl-template-collection {
234
  color: #a8b3bf;
235
  }
 
 
 
 
236
  .fl-builder-ui-skin--dark .fl-lightbox .fl-lightbox-header h1 {
237
  color: white !important
238
  }
240
  color: #a8b3bf !important;
241
  }
242
  .fl-builder-ui-skin--dark .fl-builder-settings-tabs {
243
+ background-color: #2c333a !important;
244
  }
245
  .fl-builder-ui-skin--dark .fl-builder-settings-fields h3.fl-builder-settings-title {
246
+ background: #24282e;
247
  }
248
  .fl-builder-ui-skin--dark h3.fl-builder-settings-title .fl-builder-settings-title-text-wrap {
249
  color: #a8b3bf;
250
  background-color: #1b2025;
251
  }
252
  .fl-builder-ui-skin--dark .fl-lightbox *:not(i) {
253
+ color: #a7b1bb !important;
254
  }
255
  .fl-builder-ui-skin--dark .fl-builder-button {
256
  color: #c6cdd6 !important;
264
  .fl-builder-ui-skin--dark .fl-lightbox .fl-builder-button.fl-builder-button-primary {
265
  color: #ffffff !important;
266
  }
267
+ .fl-builder-ui-skin--dark .fl-color-picker-color.fl-color-picker-empty {
268
+ background: #1a1b22;
269
  }
270
  .fl-color-picker-color.fl-color-picker-empty .fl-color-picker-icon {
271
  fill:#6f7881;
272
  }
273
  .fl-builder-ui-skin--dark .fl-color-picker-clear {
274
+ background-color: #121a23;
275
  }
276
  .fl-builder-ui-skin--dark .fl-color-picker-clear:hover {
277
  background-color: #373f46;
298
  .fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=url],
299
  .fl-builder-ui-skin--dark .fl-builder-settings-fields select,
300
  .fl-builder-ui-skin--dark .fl-builder-custom-field {
301
+ background-color: #181b20 !important;
302
  }
303
 
304
  .fl-builder-ui-skin--dark .fl-builder-settings-fields textarea:focus,
389
  border-top: 2px solid #1b2026 !important;
390
  }
391
 
392
+ .fl-builder-ui-skin--dark div.fl-field-unit-select {
393
+ background-color: #181b20 !important;
394
+ }
395
+ .fl-builder-ui-skin--dark .fl-dimension-field-units > * {
396
+ border-right: 1px solid #383f46;
397
+ }
398
+ .fl-builder-ui-skin--dark .fl-field-popup-slider,
399
+ .fl-builder-ui-skin--dark .fl-field-popup-slider-input .ui-slider-handle {
400
+ background: #383f46;
401
+ }
402
+ .fl-builder-ui-skin--dark .fl-field-popup-slider-arrow:after {
403
+ border-bottom-color: #383f46;
404
+ }
405
+ .fl-builder-ui-skin--dark .fl-field-popup-slider-input {
406
+ background-color: #121a23;
407
+ }
408
+ .fl-builder-ui-skin--dark .fl-unit-field-input {
409
+ border-right: 1px solid #383f46 !important;
410
+ }
411
+
412
+ .fl-builder-ui-skin--dark .fl-button-group-field-option[data-selected="1"] {
413
+ background-color: #383f46;
414
+ color:white;
415
+ }
416
+ .fl-builder-ui-skin--dark .fl-button-group-field-option[data-selected="1"] i {
417
+ color:white !important;
418
+ }
419
+ .fl-builder-ui-skin--dark .fl-button-group-field-options {
420
+ background: #181b20;
421
+ }
422
+
423
+ .fl-builder-ui-skin--dark .fl-compound-field-section-toggle {
424
+ background-color: #181b20;
425
+ }
426
+ .fl-builder-ui-skin--dark .fl-compound-field-section-toggle:hover {
427
+ background-color: #383f46;
428
+ }
429
+ .fl-builder-ui-skin--dark .fl-compound-field-section-visible .fl-compound-field-section-toggle {
430
+ border-top-color: #121a23 !important;
431
+ background-color:transparent;
432
+ }
433
+
434
+ .fl-builder-ui-skin--dark .fl-field-connections-toggle i {
435
+ color: #7c8590;
436
+ }
437
+ .fl-builder-ui-skin--dark .fl-lightbox .fl-field-connection-content {
438
+ background-color: #191b20 !important;
439
+ }
440
+
441
+ .fl-builder-ui-skin--dark .fl-nanoscroller > .fl-nanoscroller-pane > .fl-nanoscroller-slider {
442
+ background-color: #181b20;
443
+ }
444
+ .fl-builder-ui-skin--dark .fl-nanoscroller > .fl-nanoscroller-pane:hover > .fl-nanoscroller-slider {
445
+ background-color: #5a646f;
446
+ }
447
+ .fl-builder-ui-skin--dark .fl-nanoscroller > .fl-nanoscroller-pane.active > .fl-nanoscroller-slider {
448
+ background-color: #00A0D2;
449
+ }
450
+
451
+ /* MCE */
452
+ .fl-builder-ui-skin--dark .fl-lightbox div.mce-panel {
453
+ background: #383f46;
454
+ }
455
+ .fl-builder-ui-skin--dark .fl-lightbox .mce-toolbar .mce-ico {
456
+ color: #a7b1bb;
457
+ }
458
+
459
+ .fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button,
460
+ .fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button-secondary {
461
+ background: #383f46;
462
+ border:none;
463
+ box-shadow:none;
464
+ }
465
+ .fl-builder-ui-skin--dark .fl-lightbox .fl-builder-settings .wp-switch-editor {
466
  background: #23282d;
 
467
  }
468
+ .fl-builder-ui-skin--dark .fl-lightbox .html-active .switch-html,
469
+ .fl-builder-ui-skin--dark .fl-lightbox .tmce-active .switch-tmce,
470
+ .fl-builder-ui-skin--dark .fl-lightbox .quicktags-toolbar {
471
+ background: #383f46;
472
+ }
473
+ .fl-builder-ui-skin--dark .fl-lightbox textarea.wp-editor-area {
474
+ background: transparent !important;
475
+ }
476
+
477
+ .fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button-secondary:focus,
478
+ .fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button-secondary:hover,
479
+ .fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button.focus,
480
+ .fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button.hover,
481
+ .fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button:focus,
482
+ .fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button:hover {
483
+ background: #191b20;
484
  }
css/fl-builder.css CHANGED
@@ -6,7 +6,7 @@ html {
6
  transition-duration: .35s;
7
  }
8
  html.fl-builder-is-showing-toolbar {
9
- margin-top: 46px !important;
10
  }
11
  .fl-builder-edit body {
12
  position: static !important;
@@ -90,7 +90,7 @@ html.fl-builder-show-admin-bar #wpadminbar {
90
  font-style: italic;
91
  }
92
  .fl-builder-node-loading {
93
- opacity: 0.35;
94
  }
95
  .fl-builder-node-loading-placeholder {
96
  background: url(../img/ajax-loader.svg) center center no-repeat;
@@ -128,11 +128,21 @@ html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-visible
128
  html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-visible-mobile {
129
  display: block !important;
130
  }
 
 
 
 
 
 
 
131
  /* @endgroup Responsive Utilities */
132
 
133
  /* @group Responsive Editing
134
  ------------------------------------------------------ */
135
 
 
 
 
136
  .fl-responsive-preview-mask {
137
  background: #F7F7F7;
138
  bottom: 0;
@@ -145,7 +155,7 @@ html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-visible
145
  .fl-responsive-preview {
146
  bottom: 0;
147
  left: 0;
148
- position: absolute;
149
  right: 0;
150
  top: 0;
151
  margin-top: 50px;
@@ -157,24 +167,54 @@ html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-visible
157
  .fl-responsive-preview-content {
158
  background: #F5F7F9;
159
  padding: 20px 20px 45px;
 
 
 
 
 
 
 
 
 
160
  }
161
  .fl-responsive-preview-message {
 
162
  color: #b3b3b3;
163
- font-family: Helvetica, Arial, Verdana, sans-serif;
164
  font-size: 14px;
165
  font-weight: normal;
166
- padding: 0 20px 20px;
167
  text-align: center;
 
 
 
 
 
168
  }
169
- .fl-responsive-preview-message i {
170
- cursor: pointer;
171
- margin-left: 3px;
 
 
 
 
 
 
 
 
 
 
172
  }
173
  .fl-responsive-preview .fl-builder-content {
174
  box-shadow: 0 0 8px rgba(0,0,0,0.2);
175
  margin-left: auto;
176
  margin-right: auto;
177
  max-width: 100%;
 
 
 
 
 
178
  }
179
  /* @endgroup Responsive Editing */
180
 
@@ -190,7 +230,7 @@ html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-visible
190
  right: 0;
191
  top: 0;
192
  width: 100%;
193
- z-index: 99999;
194
  }
195
  #fl-builder-preview-frame {
196
  bottom: 0;
@@ -203,39 +243,54 @@ html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-visible
203
  -moz-transform: translateX(-50%);
204
  -webkit-transform: translateX(-50%);
205
  width: 100%;
206
- z-index: 100000;
207
  }
208
  /* @endgroup Responsive Iframe Preview */
209
 
210
  /* @group Buttons
211
  ------------------------------------------------------ */
212
 
 
 
 
 
 
 
 
 
 
 
 
 
 
213
  .fl-builder-button {
214
- color: #676F7A !important;
215
- fill: #676F7A !important;
216
- background: #E4E7EA;
217
  align-items: center;
 
 
 
 
 
 
 
 
 
218
  display: flex;
219
- text-decoration: none;
 
220
  font-size: 14px !important;
 
221
  font-weight: 500 !important;
222
- line-height: 1 !important;
223
  height: 33px;
 
 
224
  margin: 0;
225
  padding: 0px 12px;
226
- cursor: pointer;
227
- -webkit-border-radius: 3px;
228
- -webkit-appearance: none;
229
- border:2px solid transparent;
230
- border-radius: 3px;
231
- letter-spacing: normal !important;
232
- white-space: nowrap;
233
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
234
- -webkit-box-sizing: border-box !important;
235
- -moz-box-sizing: border-box !important;
236
- box-sizing: border-box !important;
237
  transition-property: background-color, width;
238
  transition-duration: .2s;
 
 
239
 
240
  /* Prevent select */
241
  -webkit-touch-callout: none; /* iOS Safari */
@@ -407,11 +462,11 @@ body .fl-builder-bar .fl-builder-bar-content {
407
  display: flex;
408
  box-sizing: border-box;
409
  background: #ffffff;
410
- border-bottom: 2px solid #D5DADD;
411
  color: #999999;
412
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
413
  font-size: 14px !important;
414
- height: 48px; /* include 2px border */
415
  transition-property: background-color, opacity, transform;
416
  transition-duration: .35s;
417
  pointer-events: auto;
@@ -430,7 +485,7 @@ body .fl-builder-bar .fl-builder-bar-content.is-muted > *:not(.fl-builder-publis
430
  display: flex;
431
  flex: 0 0 380px;
432
  max-width: 380px; /* required */
433
- border-right: 2px solid #D5DADD;
434
  cursor: pointer;
435
  }
436
  .fl-builder-bar-title:hover {
@@ -446,13 +501,6 @@ body .fl-builder-bar .fl-builder-bar-content.is-muted > *:not(.fl-builder-publis
446
  cursor: auto;
447
  background: none;
448
  }
449
- .fl-builder-bar-title img {
450
- /*
451
- height: 33px !important;
452
- margin: 2px 10px 0 0 !important;
453
- vertical-align: middle !important;
454
- */
455
- }
456
  .fl-builder-bar-title span {
457
  vertical-align: middle;
458
  }
@@ -481,8 +529,8 @@ body .fl-builder-bar .fl-builder-bar-content.is-muted > *:not(.fl-builder-publis
481
  }
482
  .fl-builder-layout-title,
483
  .fl-theme-builder-preview-select .fl-theme-builder-preview-select-title span {
484
- font-size: 17px;
485
- font-weight: 400;
486
  line-height: 1.3;
487
  color: #161B20;
488
  white-space: nowrap;
@@ -496,6 +544,7 @@ body .fl-builder-bar .fl-builder-bar-content.is-muted > *:not(.fl-builder-publis
496
  font-weight: 500;
497
  line-height: 1.3;
498
  color: #656d77;
 
499
  white-space: nowrap;
500
  text-overflow: ellipsis;
501
  overflow: hidden;
@@ -577,7 +626,8 @@ body .fl-builder-bar .fl-builder-bar-content.is-muted > *:not(.fl-builder-publis
577
  padding: 4px 0 !important;
578
  border-bottom: none !important;
579
  display: flex;
580
- flex-direction: column;
 
581
  }
582
  .fl-theme-builder-preview-select-item:hover {
583
  text-decoration: none;
@@ -653,8 +703,8 @@ body .fl-theme-builder-preview-select-item-child:hover {
653
  cursor: pointer;
654
  display: flex;
655
  align-self: center;
656
- padding: 0 16px;
657
- font-size: 1em;
658
  font-style:italic;
659
  color: #676f7a;
660
  align-items: center;
@@ -667,23 +717,26 @@ body .fl-theme-builder-preview-select-item-child:hover {
667
  }
668
  .fl-builder--saving-indicator .fa-question-circle {
669
  font-size: 13px;
670
- margin: 3px 0 3px 8px;
671
  }
672
 
673
  /* Buy/Upgrade button */
674
  .fl-builder-buy-button,
675
- .fl-builder-upgrade-button {
 
676
  background: #F7A407;
677
  color: #fff !important;
678
  text-decoration: none;
679
  }
680
  .fl-builder-buy-button i.fa-external-link-alt,
681
- .fl-builder-upgrade-button i.fa-external-link-alt {
 
682
  color: #FFC733;
683
  margin: 0 0 0 6px;
684
  }
685
  .fl-builder-buy-button:hover,
686
- .fl-builder-upgrade-button:hover {
 
687
  background: #EE8E0D;
688
  color: #fff !important;
689
  }
@@ -728,11 +781,23 @@ body .fl-theme-builder-preview-select-item-child:hover {
728
  display:none;
729
  }
730
  .fl-builder-bar-title {
731
- flex: 0 0 100px !important;
732
  }
733
  .fl-builder-bar-title-area {
734
  display:none;
735
  }
 
 
 
 
 
 
 
 
 
 
 
 
736
  .fl-builder--main-menu-panel:before {
737
  display:none;
738
  }
@@ -751,6 +816,7 @@ body .fl-theme-builder-preview-select-item-child:hover {
751
  }
752
  .fl-builder-publish-actions {
753
  width:100% !important;
 
754
  }
755
  .fl-builder-bar-actions .fl-builder-button {
756
  padding: 0 8px !important;
@@ -762,7 +828,7 @@ body .fl-theme-builder-preview-select-item-child:hover {
762
  position: fixed;
763
  top: 4px;
764
  left: 4px;
765
- z-index: 100008;
766
  padding: 4px;
767
  justify-content: center;
768
  background:white;
@@ -862,7 +928,7 @@ body .fl-theme-builder-preview-select-item-child:hover {
862
  display: none;
863
  }
864
  .fl-builder-panel.fl-builder-ui-pinned {
865
- top: 48px !important;
866
  bottom: 0 !important;
867
  height: auto !important;
868
  border-radius: 0;
@@ -877,12 +943,12 @@ body .fl-theme-builder-preview-select-item-child:hover {
877
  .fl-builder-panel.fl-builder-ui-pinned-right {
878
  left: auto !important;
879
  right: 0;
880
- border-left: 2px solid #d5dadd;
881
  }
882
  .fl-builder-panel.fl-builder-ui-pinned-left {
883
  left: 0;
884
  right: auto;
885
- border-right: 2px solid #d5dadd;
886
  }
887
  .fl-builder-panel.fl-builder-ui-pinned .fl-builder--panel-header {
888
  border-radius: 0 !important;
@@ -1048,7 +1114,7 @@ body .fl-theme-builder-preview-select-item-child:hover {
1048
  box-sizing: border-box;
1049
  position: fixed !important;
1050
  right: 20px;
1051
- top: calc(48px + 10px);
1052
  width: 380px;
1053
  bottom: 20px;
1054
  background: #F5F7F9;
@@ -1059,7 +1125,6 @@ body .fl-theme-builder-preview-select-item-child:hover {
1059
  box-shadow: 0px 8px 40px 4px rgba(0, 0, 0, 0.3);
1060
  z-index: 10000007;
1061
  will-change: transform;
1062
- display:none;
1063
  -webkit-touch-callout: none;
1064
  -webkit-user-select: none;
1065
  -khtml-user-select: none;
@@ -1072,8 +1137,10 @@ body .fl-theme-builder-preview-select-item-child:hover {
1072
  animation-name: fl-builder-show-panel;
1073
  animation-duration: .15s;
1074
  animation-fill-mode: both;
 
1075
  }
1076
  .fl-builder--search-results-panel {
 
1077
  position: absolute;
1078
  right: 0;
1079
  top: 93px;
@@ -1088,12 +1155,13 @@ body .fl-theme-builder-preview-select-item-child:hover {
1088
  overflow:auto;
1089
  z-index:1;
1090
  }
 
 
 
1091
  .fl-builder-content-panel-is-showing .fl-builder-panel,
1092
  .fl-builder-search-results-panel-is-showing .fl-builder--search-results-panel {
1093
- display:block;
1094
- }
1095
- .fl-builder-content-panel-is-showing .fl-builder-panel.fl-builder--current-view-templates {
1096
- width: 520px;
1097
  }
1098
  .fl-builder--search-results-panel .fl-builder--no-results {
1099
  text-align: center;
@@ -1117,14 +1185,12 @@ body.fl-builder-draggable-is-dragging .fl-builder--panel-arrow {
1117
  ------------------------------------------------------ */
1118
 
1119
  .fl-builder--panel-header {
1120
- background:white;
1121
  border-top: 3px solid #00a0d2;
1122
- border-bottom: 2px solid #e6eaed;
1123
  border-top-right-radius: 4px;
1124
  border-top-left-radius: 4px;
1125
  }
1126
  .fl-builder-ui-is-pinned .fl-builder--panel-header {
1127
- border-top-color: transparent;
1128
  }
1129
  .fl-builder-panel-drag-handle {
1130
  position: absolute;
@@ -1156,11 +1222,16 @@ body.fl-builder-draggable-is-dragging .fl-builder--panel-arrow {
1156
  margin-left: -4px; /* compensate for group select padding */
1157
  }
1158
  .fl-builder--panel-controls .fl-builder-panel-search button {
1159
- width: 38px;
 
 
 
 
1160
  background: transparent !important;
1161
  border: 2px solid transparent !important;
1162
  font-size: inherit;
1163
- height: 38px;
 
1164
  padding:0;
1165
  }
1166
  .fl-builder--panel-controls .fl-builder-panel-search button:focus,
@@ -1189,7 +1260,7 @@ body.fl-builder-draggable-is-dragging .fl-builder--panel-arrow {
1189
  left:0;
1190
  right:0;
1191
  bottom:0;
1192
- background:white;
1193
  }
1194
  .fl-builder-panel-search.is-showing-input .fl-builder-panel-search-input {
1195
  display: flex;
@@ -1201,7 +1272,7 @@ body.fl-builder-draggable-is-dragging .fl-builder--panel-arrow {
1201
  border: 2px solid #e6eaed;
1202
  background:white;
1203
  border-radius: 4px;
1204
- margin-right: 4px;
1205
  padding: 10px;
1206
  color: #333;
1207
  }
@@ -1209,9 +1280,6 @@ body.fl-builder-draggable-is-dragging .fl-builder--panel-arrow {
1209
  border-color: #0197C6;
1210
  outline: none;
1211
  }
1212
- .fl-builder-panel-search-input button {
1213
- flex: 0 0 38px;
1214
- }
1215
 
1216
  /* Builder Panel Content
1217
  ------------------------------------------------------ */
@@ -1228,9 +1296,6 @@ body.fl-builder-draggable-is-dragging .fl-builder--panel-arrow {
1228
  .fl-builder-panel-content {
1229
  padding-bottom: 60px;
1230
  }
1231
- .fl-builder-blocks-section {
1232
- border-top: 2px solid #e6eaed;
1233
- }
1234
  .fl-builder--panel-view .fl-builder-blocks-section:first-child {
1235
  border-top:none;
1236
  }
@@ -1245,28 +1310,31 @@ body.fl-builder-draggable-is-dragging .fl-builder--panel-arrow {
1245
  font-weight: 600;
1246
  line-height: 1.4;
1247
  }
1248
- .fl-builder-blocks-section .fl-builder-blocks-section-title,
1249
  .fl-builder-blocks-section .fl-builder-block {
1250
  display: block;
1251
  line-height: 1.1;
1252
  padding: 15px 20px;
1253
  }
1254
- .fl-builder-blocks-section .fl-builder-blocks-section-title,
1255
- .fl-builder--template-collection-section-name {
1256
- display: inline-block;
1257
- font-weight: 700;
1258
- font-size: 12px;
1259
  line-height: 1.2;
1260
- text-transform: uppercase;
1261
- padding-top: 30px;
1262
  color: #333333;
1263
- padding: 4px 10px;
1264
- padding-left: 15px;
1265
  margin:0 !important;
1266
- background: #e6eaed;
1267
- border-bottom-right-radius: 4px;
1268
  user-select: none;
1269
- vertical-align: top;
 
 
 
 
 
 
 
 
 
 
 
 
1270
  }
1271
  .fl-builder-blocks-section .fl-builder-blocks-section-title i {
1272
  color: #bfbfbf;
@@ -1276,6 +1344,10 @@ body.fl-builder-draggable-is-dragging .fl-builder--panel-arrow {
1276
  overflow: auto;
1277
  padding: 10px 10px 20px;
1278
  }
 
 
 
 
1279
  .fl-builder-blocks-section-content:after {
1280
  float:none;
1281
  clear:both;
@@ -1286,6 +1358,22 @@ body.fl-builder-draggable-is-dragging .fl-builder--panel-arrow {
1286
  display: flex;
1287
  flex-wrap: wrap;
1288
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1289
  .fl-builder-blocks-section-content .fl-builder-block-module,
1290
  .fl-builder-blocks-section-content .fl-builder-block-row {
1291
  flex: 1 1 50%;
@@ -1305,10 +1393,10 @@ body.fl-builder-draggable-is-dragging .fl-builder--panel-arrow {
1305
  text-overflow: ellipsis;
1306
  white-space: nowrap;
1307
  border-radius: 4px;
1308
- font-size: 14px;
1309
  line-height: 1.1;
1310
- font-weight: 500;
1311
- color: #727272;
1312
  }
1313
  .fl-builder-block {
1314
  position: relative;
@@ -1595,6 +1683,9 @@ body.fl-builder-draggable-is-dragging .fl-builder--panel-arrow {
1595
  padding-bottom: 10px;
1596
  border-bottom: 1px solid #dfdfdf;
1597
  }
 
 
 
1598
  .fl-builder--template-collection-section:after,
1599
  .fl-builder--template-collection-section:before {
1600
  content: "";
@@ -1604,12 +1695,6 @@ body.fl-builder-draggable-is-dragging .fl-builder--panel-arrow {
1604
  .fl-builder--template-collection-section-name {
1605
  padding: 15px 10px 10px;
1606
  }
1607
- .fl-builder--template-collection-section-name:before,
1608
- .fl-builder--template-collection-section-name:after,
1609
- .fl-builder--template-collection-section-content:before,
1610
- .fl-builder--template-collection-section-content:after {
1611
-
1612
- }
1613
 
1614
  /* Builder Panel Node Templates
1615
  ------------------------------------------------------ */
@@ -1675,16 +1760,10 @@ span.fl-builder-block-no-node-templates:hover {
1675
  }
1676
  .fl-builder-panel .fl-builder--panel-header {
1677
  cursor:move;
1678
- position: absolute;
1679
- top: 0;
1680
- left: 0;
1681
- right: 0;
1682
- z-index: 9;
1683
  }
1684
  .fl-builder-panel .fl-builder--tabs {
1685
  justify-content: space-around;
1686
- padding: 0 24px;
1687
- min-height: 46px;
1688
  cursor: pointer;
1689
  }
1690
  .fl-builder--tab-wrap {
@@ -1693,6 +1772,8 @@ span.fl-builder-block-no-node-templates:hover {
1693
  flex-direction: row;
1694
  align-items: stretch;
1695
  justify-content: space-between;
 
 
1696
  }
1697
  .fl-builder--tabs button,
1698
  .fl-builder--tabs button:hover,
@@ -1701,19 +1782,21 @@ span.fl-builder-block-no-node-templates:hover {
1701
  flex:1 1 100%;
1702
  display: inline-block;
1703
  text-decoration: none;
 
1704
  color:inherit;
1705
  text-align: center;
1706
  letter-spacing: normal !important;
 
1707
  padding:5px;
1708
  cursor: pointer;
1709
- font-size: 14px !important;
1710
- font-weight: 600 !important;
1711
- line-height: 1.4 !important;
1712
  background: transparent !important;
1713
  outline: none !important;
1714
  border: 2px solid transparent;
1715
  border-radius: 4px;
1716
- margin: 7px 0px;
1717
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
1718
  top:0; /* fix default button active */
1719
  transition-property: background, color;
@@ -1725,6 +1808,9 @@ span.fl-builder-block-no-node-templates:hover {
1725
  .fl-builder--tabs button.is-showing { /* active tab */
1726
  color: #0086b0;
1727
  }
 
 
 
1728
  .fl-builder--panel-view {
1729
  display: none;
1730
  overflow: hidden;
@@ -1732,18 +1818,6 @@ span.fl-builder-block-no-node-templates:hover {
1732
  .fl-builder--panel-view.is-showing {
1733
  display: block;
1734
  }
1735
- .fl-builder--content-library-panel .fl-builder--panel-view.is-showing {
1736
- position: absolute;
1737
- top: 96px;
1738
- bottom:0;
1739
- left:0;
1740
- right:0;
1741
- width: auto;
1742
- height: auto;
1743
- }
1744
- .fl-builder--content-library-panel.single-view .fl-builder--panel-view.is-showing {
1745
- top: 52px;
1746
- }
1747
 
1748
  .fl-builder--content-library-panel.ui-draggable-dragging {
1749
  height: 500px !important;
@@ -1775,21 +1849,32 @@ span.fl-builder-block-no-node-templates:hover {
1775
  font-weight: 700;
1776
  line-height: 16px;
1777
  border-radius: 4px;
 
1778
  }
1779
  .fl-builder--selector-display-label {
1780
  display: flex;
1781
  flex-direction: row;
 
1782
  font-size: inherit;
1783
  line-height: inherit;
1784
  width: 100%;
 
1785
  padding:0 !important;
1786
  color: #6D6D6D;
1787
  background: none;
1788
- border: 2px solid #e4e7ea;
 
1789
  border-radius: 4px;
1790
  font-family: inherit;
 
 
 
 
 
 
 
 
1791
  }
1792
- .fl-builder--selector-display-label:hover,
1793
  .fl-builder--selector-display-label:active {
1794
  top:0;
1795
  color: inherit;
@@ -1807,11 +1892,13 @@ span.fl-builder-block-no-node-templates:hover {
1807
  .fl-builder--group-label {
1808
  color: inherit;
1809
  flex: 0 0 0%;
1810
- padding: 9px 10px;
1811
  padding-right: 12px;
1812
- background: #e6eaed;
1813
- border-top-left-radius: 2px;
1814
- border-bottom-left-radius: 2px;
 
 
1815
  }
1816
  .fl-builder--current-view-name {
1817
  flex: 1 1 100%;
@@ -1820,7 +1907,7 @@ span.fl-builder-block-no-node-templates:hover {
1820
  text-overflow: ellipsis;
1821
  white-space: nowrap;
1822
  font-weight: 600;
1823
- padding: 9px 10px;
1824
  text-align: left;
1825
  }
1826
  .fl-builder--selector-menu {
@@ -1835,6 +1922,7 @@ span.fl-builder-block-no-node-templates:hover {
1835
  border-radius: 4px;
1836
  box-shadow: 0px 0px 20px 2px rgba(0, 0, 0, 0.2);
1837
  overflow: visible;
 
1838
  }
1839
  .fl-builder--selector-menu:before {
1840
  bottom: 100%;
@@ -1904,7 +1992,21 @@ button.fl-builder-button.fl-builder-bar-title-caret:focus {
1904
  border: 2px solid transparent !important;
1905
  text-decoration: none;
1906
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
1907
  .fl-builder--menu .fl-inset {
 
1908
  padding-left:35px;
1909
  font-size: 14px;
1910
  line-height: 1.25;
@@ -1946,8 +2048,9 @@ button.fl-builder-button.fl-builder-bar-title-caret:focus {
1946
  right:0;
1947
  width: 380px;
1948
  max-width: 100%;
1949
- height:46px;
1950
  padding: 4px;
 
1951
  flex-direction: row;
1952
  justify-content: flex-end;
1953
  opacity:1;
@@ -2156,7 +2259,6 @@ button.fl-builder-button.fl-builder-bar-title-caret:focus {
2156
  border-radius: 4px;
2157
  min-height: 100px;
2158
  overflow-x: hidden;
2159
- width: 100%;
2160
  }
2161
  .fl-col-has-cols.fl-col-highlight > .fl-col-content {
2162
  padding: 8px;
@@ -2324,6 +2426,8 @@ button.fl-builder-button.fl-builder-bar-title-caret:focus {
2324
  .fl-block-overlay * {
2325
  text-shadow: none;
2326
  -webkit-touch-callout: none;
 
 
2327
  }
2328
  .fl-block-overlay-active {
2329
  position: relative;
@@ -2337,6 +2441,8 @@ button.fl-builder-button.fl-builder-bar-title-caret:focus {
2337
  text-shadow: none;
2338
  border-bottom-right-radius: 5px;
2339
  border-top-left-radius: 3px;
 
 
2340
  }
2341
  .fl-row-overlay-header-bottom .fl-block-overlay-actions {
2342
  border-radius: 0;
@@ -2482,6 +2588,9 @@ button.fl-builder-button.fl-builder-bar-title-caret:focus {
2482
  padding-bottom: 15px;
2483
  padding-top: 15px;
2484
  }
 
 
 
2485
 
2486
  /* Global Overlays */
2487
  .fl-block-overlay-global {
@@ -3082,8 +3191,8 @@ form.fl-builder-settings {
3082
  ------------------------------------------------------ */
3083
 
3084
  .fl-lightbox-width-slim .fl-form-table {
3085
- margin: 20px 25px 10px 15px !important;
3086
- width: calc(100% - 60px);
3087
  }
3088
  .fl-lightbox-width-slim .fl-form-table th {
3089
  display: block;
@@ -3095,7 +3204,7 @@ form.fl-builder-settings {
3095
  display: block;
3096
  }
3097
  .fl-lightbox-width-slim .fl-form-table td:first-child {
3098
- padding-left: 10px !important;
3099
  }
3100
  .fl-lightbox-width-slim .fl-form-table .fl-field[data-type="editor"] td:first-child {
3101
  padding-left: 0px !important;
@@ -3112,24 +3221,66 @@ form.fl-builder-settings {
3112
  padding: 0 5px !important;
3113
  }
3114
 
 
 
 
 
 
 
 
3115
  /* Slim - Selects */
3116
  .fl-lightbox-width-slim .fl-builder-settings-fields select {
3117
  width: 100%;
3118
  }
3119
 
 
 
 
 
 
3120
  /* Slim - Color Picker */
3121
  .fl-lightbox-width-slim .fl-color-picker {
3122
  display: flex;
3123
  width:auto;
3124
  }
3125
  .fl-lightbox-width-slim .fl-color-picker-clear {
3126
- flex: 0 0 50px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3127
  }
3128
 
3129
  /* Slim - TinyMCE */
3130
  .fl-lightbox-width-slim .mce-menubtn.mce-fixed-width button {
3131
  width: 72px !important;
3132
  }
 
 
 
3133
  .fl-lightbox-width-micro .mce-menubtn.mce-fixed-width button {
3134
  width: 38px !important;
3135
  }
@@ -3137,6 +3288,72 @@ form.fl-builder-settings {
3137
  .fl-lightbox-width-micro .mce-btn[aria-label="Blockquote"] {
3138
  display: none;
3139
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3140
 
3141
  /* Slim - Repeaters */
3142
  .fl-lightbox-width-slim .fl-builder-field-multiple {
@@ -3150,11 +3367,19 @@ form.fl-builder-settings {
3150
  .fl-lightbox-width-slim .fl-builder-field-multiple .fl-field-control {
3151
  width: 100% !important;
3152
  }
 
 
 
3153
  .fl-lightbox-width-slim .fl-builder-field-multiple .fl-builder-field-actions {
3154
  position: absolute !important;
3155
  top:0;
3156
  right:0;
3157
  width: 70px;
 
 
 
 
 
3158
  }
3159
 
3160
  /* Slim - Time */
@@ -3166,12 +3391,12 @@ form.fl-builder-settings {
3166
  ------------------------------------------------------ */
3167
 
3168
  .fl-builder-settings-tabs {
3169
- margin: 6px 6px 6px;
3170
- border: 2px solid #e6eaed;
3171
- border-radius: 4px;
3172
  display: flex;
3173
  flex-direction: row;
 
3174
  overflow: hidden;
 
 
3175
  }
3176
 
3177
  .fl-builder-content-group-select {
@@ -3185,7 +3410,6 @@ form.fl-builder-settings {
3185
  width: 100%;
3186
  -webkit-appearance: none;
3187
  -moz-appearance: none;
3188
- appearance: none;
3189
  box-sizing: border-box;
3190
  padding: 8px 10px;
3191
  background: white url(../img/svg/select-arrow-down-alt2.svg) no-repeat center right 10px !important;
@@ -3213,31 +3437,22 @@ body .fl-builder-settings-tabs > * {
3213
  background: transparent;
3214
  border: 2px solid transparent;
3215
  border-radius:0;
3216
- display: inline-block;
3217
  margin: 0;
3218
  outline: none;
3219
- padding: 6px 15px;
3220
  text-decoration: none !important;
3221
- font-size: 14px;
3222
  font-weight: normal !important;
3223
  flex: 0 0 auto;
3224
  white-space: nowrap;
3225
  overflow: hidden;
3226
  text-overflow: ellipsis;
3227
- display:block;
3228
- text-align: center;
3229
- }
3230
- body .fl-builder-settings-tabs > *:first-child {
3231
- border-top-left-radius: 3px;
3232
- border-bottom-left-radius: 3px;
3233
- }
3234
- body .fl-builder-settings-tabs > *:last-child {
3235
- border-top-right-radius: 3px;
3236
- border-bottom-right-radius: 3px;
3237
  }
3238
  body .fl-lightbox-width-slim .fl-builder-settings-tabs > * {
3239
  flex: 1 1 auto;
3240
- padding: 6px 8px;
3241
  }
3242
  body .fl-builder-settings-tabs > .fl-builder-settings-tabs-more {
3243
  flex: 0 0 60px;
@@ -3280,7 +3495,7 @@ body .fl-lightbox-has-tab-overflow .fl-builder-settings-tabs-more {
3280
  color: #0086b0 !important;
3281
  fill: #0086b0 !important;
3282
  position: relative;
3283
- background: #e6eaed;
3284
  }
3285
  .fl-builder-settings-tabs .fl-overflowed,
3286
  .fl-builder-settings-tabs .fl-active.fl-overflowed {
@@ -3393,7 +3608,7 @@ body .fl-lightbox-has-tab-overflow .fl-builder-settings-tabs-more {
3393
  .fl-form-table th {
3394
  border: none !important;
3395
  font-weight: normal !important;
3396
- padding: 10px !important;
3397
  padding-left:30px !important;
3398
  text-align: left !important;
3399
  vertical-align: top !important;
@@ -3408,6 +3623,12 @@ body .fl-lightbox-has-tab-overflow .fl-builder-settings-tabs-more {
3408
  width: auto;
3409
  max-width: 100%;
3410
  }
 
 
 
 
 
 
3411
  .fl-form-table td {
3412
  background: transparent !important;
3413
  border: none !important;
@@ -3416,7 +3637,7 @@ body .fl-lightbox-has-tab-overflow .fl-builder-settings-tabs-more {
3416
  text-align: left !important;
3417
  }
3418
  .fl-lightbox-width-slim .fl-form-table td {
3419
- padding: 4px 0 10px;
3420
  }
3421
 
3422
  /* Settings Fields
@@ -3438,6 +3659,7 @@ body .fl-lightbox-has-tab-overflow .fl-builder-settings-tabs-more {
3438
  }
3439
  .fl-builder-settings-fields .fl-nanoscroller-content {
3440
  padding: 0;
 
3441
  }
3442
  .fl-builder-settings-fields .fl-field-control-wrapper {
3443
  position: relative;
@@ -3455,6 +3677,7 @@ body .fl-lightbox-has-tab-overflow .fl-builder-settings-tabs-more {
3455
  .fl-builder-settings-fields input[type=search],
3456
  .fl-builder-settings-fields input[type=tel],
3457
  .fl-builder-settings-fields input[type=url],
 
3458
  .fl-builder-settings-fields select {
3459
  background: #fff !important;
3460
  border-color: transparent !important;
@@ -3469,7 +3692,7 @@ body .fl-lightbox-has-tab-overflow .fl-builder-settings-tabs-more {
3469
  line-height: 15px;
3470
  margin: 1px;
3471
  outline: none;
3472
- padding: 3px 9px;
3473
  width: auto;
3474
  box-sizing: border-box;
3475
  }
@@ -3481,6 +3704,7 @@ body .fl-lightbox-has-tab-overflow .fl-builder-settings-tabs-more {
3481
  .fl-builder-settings-fields input[type=search],
3482
  .fl-builder-settings-fields input[type=tel],
3483
  .fl-builder-settings-fields input[type=url],
 
3484
  .fl-builder-settings-fields select:not(multiple) {
3485
  height: 36px !important;
3486
  }
@@ -3500,6 +3724,7 @@ body .fl-lightbox-has-tab-overflow .fl-builder-settings-tabs-more {
3500
  .fl-builder-lightbox .fl-builder-settings-fields input[type=search]:focus,
3501
  .fl-builder-lightbox .fl-builder-settings-fields input[type=tel]:focus,
3502
  .fl-builder-lightbox .fl-builder-settings-fields input[type=url]:focus,
 
3503
  .fl-builder-lightbox .fl-builder-settings-fields select:focus {
3504
  border-width: 2px !important;
3505
  border-style: solid !important;
@@ -3527,11 +3752,11 @@ body .fl-lightbox-has-tab-overflow .fl-builder-settings-tabs-more {
3527
  font-weight: normal;
3528
  user-select: none;
3529
  margin-bottom:3px;
 
3530
  }
3531
  .fl-builder-settings-fields select {
3532
  -webkit-appearance: none;
3533
  -moz-appearance: none;
3534
- appearance: none;
3535
  box-sizing: border-box;
3536
  color: #000;
3537
  margin: 0;
@@ -3547,75 +3772,21 @@ body .fl-lightbox-has-tab-overflow .fl-builder-settings-tabs-more {
3547
  .fl-photo-field select,
3548
  .fl-builder-custom-field select {
3549
  -webkit-box-shadow: none;
 
3550
  border-color: #e6eaed !important;
3551
  }
3552
- .fl-font-field .fl-font-field-font {
3553
- margin-bottom:4px;
3554
- width: calc( 70% - 5px ) !important;
3555
- }
3556
- .fl-font-field .fl-font-field-weight {
3557
- width:30% !important;
3558
- }
3559
-
3560
- /* Add predefined value dropdown for text field */
3561
- .fl-builder-settings-fields .fl-text-field-add-value {
3562
- min-width: 50%;
3563
- margin-top: .62em;
3564
- }
3565
-
3566
- .fl-lightbox-width-slim input.text-full + .fl-field-description,
3567
- .fl-lightbox-width-slim select + .fl-field-description {
3568
- display: block;
3569
- padding: 8px 10px;
3570
- margin: 0;
3571
- }
3572
-
3573
- /* Dimension Field */
3574
- .fl-field[data-type="dimension"] .fl-field-control-wrapper {
3575
- display: flex;
3576
- }
3577
- .fl-field[data-type="dimension"] .fl-field-description {
3578
- padding-top: 9px;
3579
- }
3580
- .fl-field[data-type="dimension"] .fl-field-responsive-toggle {
3581
- padding: 9px 9px 0 0;
3582
- }
3583
- .fl-dimension-field-units {
3584
- display: flex;
3585
- }
3586
- .fl-dimension-field-unit {
3587
- padding-right: 5px;
3588
- }
3589
- .fl-dimension-field-unit input {
3590
- max-width: 60px;
3591
- width: auto !important;
3592
- }
3593
- .fl-dimension-field-unit label {
3594
- padding: 5px 0 0;
3595
- font-size: 12px;
3596
- color: inherit !important;
3597
- display: block;
3598
- text-align: center;
3599
- }
3600
 
3601
- /* Link Field */
3602
- .fl-link-field-search input {
3603
- box-shadow: none !important;
3604
- width: 100% !important;
3605
- padding: 3px 9px !important;
3606
- }
3607
- .fl-link-field-search #as-original-link-search {
3608
- width:100%;
3609
- }
3610
-
3611
- .fl-builder-settings-section {
3612
- border-top: 2px solid #E6EAED;
3613
- }
3614
  .fl-builder-settings-section:first-child {
3615
  border-top: none !important;
3616
  }
3617
- .fl-custom-query .fl-builder-settings-section {
3618
- border-top: 2px solid #E6EAED !important; /* custom for posts module */
 
 
 
 
 
3619
  }
3620
  .fl-builder-settings-description {
3621
  padding: 10px;
@@ -3627,17 +3798,48 @@ body .fl-lightbox-has-tab-overflow .fl-builder-settings-tabs-more {
3627
  .fl-builder-settings-fields table {
3628
  margin: 20px 0 20px;
3629
  }
3630
- .fl-builder-settings-fields h3.fl-builder-settings-title {
3631
- display: inline-block;
3632
- background: #E6EAED;
3633
- padding:4px 10px;
3634
- padding-left: 15px;
 
3635
  margin:0;
3636
- text-transform: uppercase !important;
3637
- border-bottom-right-radius: 4px;
3638
- font-size: 12px !important;
3639
- font-weight: 700;
3640
  user-select: none;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3641
  }
3642
 
3643
  /* Core WordPress UI */
@@ -3675,6 +3877,7 @@ body .fl-lightbox-has-tab-overflow .fl-builder-settings-tabs-more {
3675
  .wp-core-ui input[type=search],
3676
  .wp-core-ui input[type=tel],
3677
  .wp-core-ui input[type=url],
 
3678
  .wp-core-ui select {
3679
  background-color: #fff;
3680
  border-color: #dfdfdf;
@@ -3698,6 +3901,7 @@ body .fl-lightbox-has-tab-overflow .fl-builder-settings-tabs-more {
3698
  .wp-core-ui input[type=search]:focus,
3699
  .wp-core-ui input[type=tel]:focus,
3700
  .wp-core-ui input[type=url]:focus,
 
3701
  .wp-core-ui select:focus {
3702
  background: transparent;
3703
  border-color: #aaa;
@@ -3710,11 +3914,17 @@ body .fl-lightbox-has-tab-overflow .fl-builder-settings-tabs-more {
3710
  /* Responsive Options */
3711
  .fl-field-responsive-setting {
3712
  display: inline-block;
 
3713
  }
3714
  .fl-field-responsive-setting-medium,
3715
  .fl-field-responsive-setting-responsive {
3716
  display: none;
3717
  }
 
 
 
 
 
3718
  i.fl-field-responsive-toggle {
3719
  color: #808080;
3720
  cursor: pointer;
@@ -3735,11 +3945,26 @@ i.fl-field-responsive-toggle:hover {
3735
  width: 100%;
3736
  }
3737
 
 
 
 
 
 
 
3738
  /* Textarea */
3739
  .fl-builder-settings-fields textarea {
3740
  width: 100%;
3741
  }
3742
 
 
 
 
 
 
 
 
 
 
3743
  /* Color Picker */
3744
  .fl-color-picker {
3745
  cursor: pointer;
@@ -3764,6 +3989,529 @@ i.fl-field-responsive-toggle:hover {
3764
  width: 45px !important;
3765
  }
3766
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3767
  /* Custom Fields */
3768
  .fl-builder-custom-field {
3769
  background:white;
@@ -3808,16 +4556,16 @@ i.fl-field-responsive-toggle:hover {
3808
  }
3809
  .fl-photo-field .fl-photo-preview select {
3810
  margin: 8px 0 8px 10px;
3811
- width: 200px;
3812
  }
3813
  .fl-photo-field.fl-photo-no-attachment .fl-photo-preview select {
3814
  display: none;
3815
  }
3816
  .fl-photo-field .fl-photo-preview-filename {
3817
  display: none;
3818
- font-size: 14px;
3819
  font-weight: bold;
3820
- margin: 7px 0 5px 11px;
3821
  }
3822
  .fl-photo-field.fl-photo-no-attachment .fl-photo-preview-filename {
3823
  display: inline-block;
@@ -3843,6 +4591,7 @@ i.fl-field-responsive-toggle:hover {
3843
  }
3844
  .fl-builder-edit .media-frame {
3845
  -webkit-backface-visibility: hidden;
 
3846
  }
3847
  .fl-builder-edit .media-modal-content h1 {
3848
  font-family: inherit;
@@ -3938,7 +4687,6 @@ span.select2-container.select2-container--open {
3938
  margin: 0 0 0 8px;
3939
  }
3940
 
3941
-
3942
  /* Icon Fields */
3943
  .fl-icon-field .fl-icon-select,
3944
  .fl-icon-field.fl-icon-empty .fl-icon-preview {
@@ -3962,13 +4710,9 @@ span.select2-container.select2-container--open {
3962
  display: none;
3963
  }
3964
  .fl-builder-settings .wp-switch-editor {
3965
- background: #ebebeb;
3966
- border: 1px solid #e5e5e5;
3967
  border-radius: 0;
3968
  color: #333;
3969
- }
3970
- .fl-builder-settings .wp-editor-container {
3971
- border: 1px solid #e5e5e5;
3972
  }
3973
  .fl-builder-settings .mce-toolbar .mce-btn-group .mce-btn {
3974
  margin: 2px 0;
@@ -4073,10 +4817,22 @@ span.select2-container.select2-container--open {
4073
  }
4074
  .fl-link-field .fl-link-field-input-wrap button {
4075
  flex: 0 0 0%;
4076
- margin-left: 5px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4077
  }
4078
-
4079
- .fl-link-field-input {}
4080
  .fl-link-field-search {
4081
  display: none;
4082
  border: 2px solid #e6eaed;
@@ -4093,6 +4849,33 @@ span.select2-container.select2-container--open {
4093
  .fl-link-field-search-cancel {
4094
  margin-top: 6px;
4095
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4096
 
4097
  /* Tooltips */
4098
  .fl-help-tooltip {
@@ -4137,11 +4920,15 @@ span.select2-container.select2-container--open {
4137
  .fl-field-control .fl-form-field {
4138
  margin-bottom: 0;
4139
  }
 
 
 
 
4140
  .fl-form-field-preview-text i {
4141
  display: inline-block;
4142
  font-size: 18px;
4143
  line-height: 22px;
4144
- margin-bottom: 5px;
4145
  }
4146
  .fl-builder-field-actions {
4147
  padding-left: 0 !important;
@@ -4180,9 +4967,6 @@ span.select2-container.select2-container--open {
4180
  .fl-builder-field-actions-single .fl-builder-field-delete {
4181
  display: none !important;
4182
  }
4183
- .fl-lightbox-width-slim .fl-builder-field-actions-single .fl-builder-field-copy {
4184
- float: right !important;
4185
- }
4186
 
4187
  .fl-builder-field-multiple .fl-field-label,
4188
  .fl-builder-field-multiple .fl-field-control,
@@ -4237,11 +5021,32 @@ span.select2-container.select2-container--open {
4237
  }
4238
  .fl-lightbox .fl-field-connection-content {
4239
  border: 2px solid transparent !important;
4240
- background: #e4e7ea !important;
4241
  }
4242
  .fl-field-connection-content .fl-field-connection-label {
4243
  color: #676f7a !important;
4244
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4245
 
4246
  /* Auto Suggest */
4247
  ul.as-selections {
@@ -4359,6 +5164,10 @@ li.as-result-item em {
4359
  position: relative;
4360
  top: 2px;
4361
  }
 
 
 
 
4362
  .fl-builder-service-connect-row .fl-field-description,
4363
  #fl-field-visibility_user_capability .fl-field-description {
4364
  background: #f0f0f0;
@@ -4629,16 +5438,16 @@ body > .fl-builder-tour-dimmed {
4629
  display:none;
4630
  box-sizing: border-box;
4631
  position: fixed;
4632
- top:calc(48px + 10px);
4633
  left: 10px;
4634
  width: 360px;
4635
  color: #222;
4636
  max-height: calc(100% - 66px);
4637
  border-radius: 4px;
4638
  background: #ffffff;
4639
- border: 2px solid #D5DADD;
4640
  border-top: 3px solid #00a0d2;
4641
- box-shadow: 0px 15px 45px 8px rgba(0, 0, 0, 0.04);
4642
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
4643
  font-size: 14px !important;
4644
 
@@ -4751,6 +5560,7 @@ body > .fl-builder-tour-dimmed {
4751
  line-height: 1.1;
4752
  cursor: pointer;
4753
  opacity:1;
 
4754
  }
4755
  .fl-builder--menu-item:hover {
4756
  background: #eaf1f8;
@@ -4777,8 +5587,8 @@ body > .fl-builder-tour-dimmed {
4777
  }
4778
  .fl-builder--menu hr {
4779
  margin: 8px 0;
4780
- background-color: #e6eaed !important;
4781
- height: 2px;
4782
  border: none;
4783
  }
4784
  .fl-builder--menu .fl-builder-video-wrap {
@@ -4852,10 +5662,23 @@ body > .fl-builder-tour-dimmed {
4852
  ------------------------------------------------------ */
4853
 
4854
  .fl-field-connections-menu {
4855
- z-index: 999999;;
4856
  }
4857
- .fl-field-connections-toggle {
4858
- right: -30px !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
4859
  }
4860
  /* @endgroup Misc */
4861
 
6
  transition-duration: .35s;
7
  }
8
  html.fl-builder-is-showing-toolbar {
9
+ margin-top: calc( 44px + 1px ) !important; /* top bar plus border */
10
  }
11
  .fl-builder-edit body {
12
  position: static !important;
90
  font-style: italic;
91
  }
92
  .fl-builder-node-loading {
93
+ opacity: 0.35 !important;
94
  }
95
  .fl-builder-node-loading-placeholder {
96
  background: url(../img/ajax-loader.svg) center center no-repeat;
128
  html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-visible-mobile {
129
  display: block !important;
130
  }
131
+ html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-col-group-equal-height .fl-col.fl-visible-desktop,
132
+ html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-col-group-equal-height .fl-col.fl-visible-desktop-medium,
133
+ html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-col-group-equal-height .fl-col.fl-visible-medium,
134
+ html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-col-group-equal-height .fl-col.fl-visible-medium-mobile,
135
+ html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-col-group-equal-height .fl-col.fl-visible-mobile {
136
+ display: flex !important;
137
+ }
138
  /* @endgroup Responsive Utilities */
139
 
140
  /* @group Responsive Editing
141
  ------------------------------------------------------ */
142
 
143
+ .fl-responsive-preview-enabled body {
144
+ overflow: hidden !important;
145
+ }
146
  .fl-responsive-preview-mask {
147
  background: #F7F7F7;
148
  bottom: 0;
155
  .fl-responsive-preview {
156
  bottom: 0;
157
  left: 0;
158
+ position: fixed;
159
  right: 0;
160
  top: 0;
161
  margin-top: 50px;
167
  .fl-responsive-preview-content {
168
  background: #F5F7F9;
169
  padding: 20px 20px 45px;
170
+ overflow: scroll;
171
+ position: absolute;
172
+ top: 45px;
173
+ right: 0;
174
+ bottom: 0;
175
+ left: 0;
176
+ }
177
+ .fl-responsive-preview-content .fl-builder-content-editing {
178
+ overflow: visible !important;
179
  }
180
  .fl-responsive-preview-message {
181
+ background: #F5F7F9;
182
  color: #b3b3b3;
183
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
184
  font-size: 14px;
185
  font-weight: normal;
186
+ padding: 15px;
187
  text-align: center;
188
+ position: absolute;
189
+ top: 0;
190
+ left: 0;
191
+ right: 0;
192
+ z-index: 999999;
193
  }
194
+ .fl-responsive-preview-message span {
195
+ display: inline-block;
196
+ margin-right: 8px;
197
+ }
198
+ .fl-responsive-preview-message .fl-builder-button {
199
+ display: inline-block;
200
+ margin-left: 2px;
201
+ padding: 0 10px;
202
+ }
203
+ .fl-responsive-preview-message .fl-builder-button i {
204
+ font-size: 14px;
205
+ height: 14px;
206
+ width: 14px;
207
  }
208
  .fl-responsive-preview .fl-builder-content {
209
  box-shadow: 0 0 8px rgba(0,0,0,0.2);
210
  margin-left: auto;
211
  margin-right: auto;
212
  max-width: 100%;
213
+ overflow: visible;
214
+ position: relative;
215
+ }
216
+ .fl-responsive-preview .fl-block-col-resize {
217
+ display: none;
218
  }
219
  /* @endgroup Responsive Editing */
220
 
230
  right: 0;
231
  top: 0;
232
  width: 100%;
233
+ z-index: 999999;
234
  }
235
  #fl-builder-preview-frame {
236
  bottom: 0;
243
  -moz-transform: translateX(-50%);
244
  -webkit-transform: translateX(-50%);
245
  width: 100%;
246
+ z-index: 1000000;
247
  }
248
  /* @endgroup Responsive Iframe Preview */
249
 
250
  /* @group Buttons
251
  ------------------------------------------------------ */
252
 
253
+ /* We don't want this stuff on buttons, ever! */
254
+ body button[class*="fl-builder"],
255
+ body button[class*="fl-builder"]:hover,
256
+ body button[class*="fl-builder"]:focus {
257
+ box-shadow: none;
258
+ max-height: none;
259
+ max-width: none;
260
+ text-decoration: none;
261
+ text-indent: 0;
262
+ text-shadow: none;
263
+ text-transform: none;
264
+ }
265
+
266
  .fl-builder-button {
267
+ -webkit-appearance: none;
 
 
268
  align-items: center;
269
+ background: #e7ebef;
270
+ border:2px solid transparent;
271
+ border-radius: 3px;
272
+ -webkit-border-radius: 3px;
273
+ box-sizing: border-box !important;
274
+ -webkit-box-sizing: border-box !important;
275
+ -moz-box-sizing: border-box !important;
276
+ color: #676F7A !important;
277
+ cursor: pointer;
278
  display: flex;
279
+ fill: #676F7A !important;
280
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
281
  font-size: 14px !important;
282
+ font-style: normal !important;
283
  font-weight: 500 !important;
 
284
  height: 33px;
285
+ letter-spacing: normal !important;
286
+ line-height: 1 !important;
287
  margin: 0;
288
  padding: 0px 12px;
289
+ text-align: center;
 
 
 
 
 
 
 
 
 
 
290
  transition-property: background-color, width;
291
  transition-duration: .2s;
292
+ white-space: nowrap;
293
+ width: auto;
294
 
295
  /* Prevent select */
296
  -webkit-touch-callout: none; /* iOS Safari */
462
  display: flex;
463
  box-sizing: border-box;
464
  background: #ffffff;
465
+ border-bottom: 1px solid #eceef1;
466
  color: #999999;
467
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
468
  font-size: 14px !important;
469
+ height: calc( 44px + 1px ); /* include 1px border */
470
  transition-property: background-color, opacity, transform;
471
  transition-duration: .35s;
472
  pointer-events: auto;
485
  display: flex;
486
  flex: 0 0 380px;
487
  max-width: 380px; /* required */
488
+ border-right: 1px solid #eceef1;
489
  cursor: pointer;
490
  }
491
  .fl-builder-bar-title:hover {
501
  cursor: auto;
502
  background: none;
503
  }
 
 
 
 
 
 
 
504
  .fl-builder-bar-title span {
505
  vertical-align: middle;
506
  }
529
  }
530
  .fl-builder-layout-title,
531
  .fl-theme-builder-preview-select .fl-theme-builder-preview-select-title span {
532
+ font-size: 16px;
533
+ font-weight: 400;
534
  line-height: 1.3;
535
  color: #161B20;
536
  white-space: nowrap;
544
  font-weight: 500;
545
  line-height: 1.3;
546
  color: #656d77;
547
+ text-align: left;
548
  white-space: nowrap;
549
  text-overflow: ellipsis;
550
  overflow: hidden;
626
  padding: 4px 0 !important;
627
  border-bottom: none !important;
628
  display: flex;
629
+ flex-direction: column;
630
+ text-align: initial;
631
  }
632
  .fl-theme-builder-preview-select-item:hover {
633
  text-decoration: none;
703
  cursor: pointer;
704
  display: flex;
705
  align-self: center;
706
+ padding: 0 10px;
707
+ font-size: 12px;
708
  font-style:italic;
709
  color: #676f7a;
710
  align-items: center;
717
  }
718
  .fl-builder--saving-indicator .fa-question-circle {
719
  font-size: 13px;
720
+ margin: 3px 0 3px 5px;
721
  }
722
 
723
  /* Buy/Upgrade button */
724
  .fl-builder-buy-button,
725
+ .fl-builder-upgrade-button,
726
+ .fl-builder-feedback-button {
727
  background: #F7A407;
728
  color: #fff !important;
729
  text-decoration: none;
730
  }
731
  .fl-builder-buy-button i.fa-external-link-alt,
732
+ .fl-builder-upgrade-button i.fa-external-link-alt,
733
+ .fl-builder-feedback-button i.fa-external-link-alt {
734
  color: #FFC733;
735
  margin: 0 0 0 6px;
736
  }
737
  .fl-builder-buy-button:hover,
738
+ .fl-builder-upgrade-button:hover,
739
+ .fl-builder-feedback-button:hover {
740
  background: #EE8E0D;
741
  color: #fff !important;
742
  }
781
  display:none;
782
  }
783
  .fl-builder-bar-title {
784
+ flex: 0 0 80px !important;
785
  }
786
  .fl-builder-bar-title-area {
787
  display:none;
788
  }
789
+ .fl-builder-bar-title-caret {
790
+ padding-left:0;
791
+ padding-right:0;
792
+ max-width: 24px;
793
+ }
794
+ .fl-builder-bar-actions {
795
+ max-width: calc(100% - 80px);
796
+ overflow: hidden;
797
+ }
798
+ #fl-builder-toggle-notifications {
799
+ display: none;
800
+ }
801
  .fl-builder--main-menu-panel:before {
802
  display:none;
803
  }
816
  }
817
  .fl-builder-publish-actions {
818
  width:100% !important;
819
+ padding-left:4px !important;
820
  }
821
  .fl-builder-bar-actions .fl-builder-button {
822
  padding: 0 8px !important;
828
  position: fixed;
829
  top: 4px;
830
  left: 4px;
831
+ z-index: 10000001;
832
  padding: 4px;
833
  justify-content: center;
834
  background:white;
928
  display: none;
929
  }
930
  .fl-builder-panel.fl-builder-ui-pinned {
931
+ top: 45px !important;
932
  bottom: 0 !important;
933
  height: auto !important;
934
  border-radius: 0;
943
  .fl-builder-panel.fl-builder-ui-pinned-right {
944
  left: auto !important;
945
  right: 0;
946
+ border-left: 1px solid #eceef1;
947
  }
948
  .fl-builder-panel.fl-builder-ui-pinned-left {
949
  left: 0;
950
  right: auto;
951
+ border-right: 1px solid #eceef1;
952
  }
953
  .fl-builder-panel.fl-builder-ui-pinned .fl-builder--panel-header {
954
  border-radius: 0 !important;
1114
  box-sizing: border-box;
1115
  position: fixed !important;
1116
  right: 20px;
1117
+ top: calc(43px + 10px);
1118
  width: 380px;
1119
  bottom: 20px;
1120
  background: #F5F7F9;
1125
  box-shadow: 0px 8px 40px 4px rgba(0, 0, 0, 0.3);
1126
  z-index: 10000007;
1127
  will-change: transform;
 
1128
  -webkit-touch-callout: none;
1129
  -webkit-user-select: none;
1130
  -khtml-user-select: none;
1137
  animation-name: fl-builder-show-panel;
1138
  animation-duration: .15s;
1139
  animation-fill-mode: both;
1140
+ flex: 1;
1141
  }
1142
  .fl-builder--search-results-panel {
1143
+ display: none;
1144
  position: absolute;
1145
  right: 0;
1146
  top: 93px;
1155
  overflow:auto;
1156
  z-index:1;
1157
  }
1158
+ .fl-builder-panel {
1159
+ display: none; /* content panel hidden by default */
1160
+ }
1161
  .fl-builder-content-panel-is-showing .fl-builder-panel,
1162
  .fl-builder-search-results-panel-is-showing .fl-builder--search-results-panel {
1163
+ display: flex;
1164
+ flex-direction: column;
 
 
1165
  }
1166
  .fl-builder--search-results-panel .fl-builder--no-results {
1167
  text-align: center;
1185
  ------------------------------------------------------ */
1186
 
1187
  .fl-builder--panel-header {
 
1188
  border-top: 3px solid #00a0d2;
 
1189
  border-top-right-radius: 4px;
1190
  border-top-left-radius: 4px;
1191
  }
1192
  .fl-builder-ui-is-pinned .fl-builder--panel-header {
1193
+ border-top:none;
1194
  }
1195
  .fl-builder-panel-drag-handle {
1196
  position: absolute;
1222
  margin-left: -4px; /* compensate for group select padding */
1223
  }
1224
  .fl-builder--panel-controls .fl-builder-panel-search button {
1225
+ display: flex;
1226
+ flex-direction: row;
1227
+ align-items: center;
1228
+ justify-content: center;
1229
+ width: 30px;
1230
  background: transparent !important;
1231
  border: 2px solid transparent !important;
1232
  font-size: inherit;
1233
+ height: 36px;
1234
+ margin: 0;
1235
  padding:0;
1236
  }
1237
  .fl-builder--panel-controls .fl-builder-panel-search button:focus,
1260
  left:0;
1261
  right:0;
1262
  bottom:0;
1263
+ background:#f5f7f9;
1264
  }
1265
  .fl-builder-panel-search.is-showing-input .fl-builder-panel-search-input {
1266
  display: flex;
1272
  border: 2px solid #e6eaed;
1273
  background:white;
1274
  border-radius: 4px;
1275
+ margin: 0 4px 0 0;
1276
  padding: 10px;
1277
  color: #333;
1278
  }
1280
  border-color: #0197C6;
1281
  outline: none;
1282
  }
 
 
 
1283
 
1284
  /* Builder Panel Content
1285
  ------------------------------------------------------ */
1296
  .fl-builder-panel-content {
1297
  padding-bottom: 60px;
1298
  }
 
 
 
1299
  .fl-builder--panel-view .fl-builder-blocks-section:first-child {
1300
  border-top:none;
1301
  }
1310
  font-weight: 600;
1311
  line-height: 1.4;
1312
  }
1313
+
1314
  .fl-builder-blocks-section .fl-builder-block {
1315
  display: block;
1316
  line-height: 1.1;
1317
  padding: 15px 20px;
1318
  }
1319
+ .fl-builder-blocks-section .fl-builder-blocks-section-header,
1320
+ .fl-builder--template-collection-section-header {
 
 
 
1321
  line-height: 1.2;
 
 
1322
  color: #333333;
 
 
1323
  margin:0 !important;
 
 
1324
  user-select: none;
1325
+
1326
+ background-color: #e7ebef;
1327
+ border-top: 4px solid #e7ebef;
1328
+ height: 30px;
1329
+ display: flex;
1330
+ flex-direction: row;
1331
+ }
1332
+ .fl-builder-blocks-section .fl-builder-blocks-section-title {
1333
+ background: #F5F7F9;
1334
+ color: #353535;
1335
+ padding: 2px 16px;
1336
+ display: flex;
1337
+ align-items:center;
1338
  }
1339
  .fl-builder-blocks-section .fl-builder-blocks-section-title i {
1340
  color: #bfbfbf;
1344
  overflow: auto;
1345
  padding: 10px 10px 20px;
1346
  }
1347
+ .fl-builder-blocks-section-content:before {
1348
+ /* TwentyFifteen is adding content before here, breaking things */
1349
+ content: none;
1350
+ }
1351
  .fl-builder-blocks-section-content:after {
1352
  float:none;
1353
  clear:both;
1358
  display: flex;
1359
  flex-wrap: wrap;
1360
  }
1361
+ @supports (display:grid) {
1362
+ .fl-builder-blocks-section-content.fl-builder-modules,
1363
+ .fl-builder-blocks-section-content.fl-builder-widgets,
1364
+ .fl-builder-blocks-section-content.fl-builder-rows,
1365
+ .fl-builder--template-collection-section-content {
1366
+ display: grid;
1367
+ grid-template-columns: repeat(auto-fit, minmax(148px, 1fr));
1368
+ }
1369
+
1370
+ .fl-builder-blocks-section-content.fl-builder-modules > *,
1371
+ .fl-builder-blocks-section-content.fl-builder-widgets > *,
1372
+ .fl-builder-blocks-section-content.fl-builder-rows > *,
1373
+ .fl-builder--template-collection-section-content > * {
1374
+ width:auto !important;
1375
+ }
1376
+ }
1377
  .fl-builder-blocks-section-content .fl-builder-block-module,
1378
  .fl-builder-blocks-section-content .fl-builder-block-row {
1379
  flex: 1 1 50%;
1393
  text-overflow: ellipsis;
1394
  white-space: nowrap;
1395
  border-radius: 4px;
1396
+ font-size: 13px;
1397
  line-height: 1.1;
1398
+ font-weight: 400;
1399
+ color: #38404a;
1400
  }
1401
  .fl-builder-block {
1402
  position: relative;
1683
  padding-bottom: 10px;
1684
  border-bottom: 1px solid #dfdfdf;
1685
  }
1686
+ .fl-builder--template-collection-section:last-child {
1687
+ border-bottom:none;
1688
+ }
1689
  .fl-builder--template-collection-section:after,
1690
  .fl-builder--template-collection-section:before {
1691
  content: "";
1695
  .fl-builder--template-collection-section-name {
1696
  padding: 15px 10px 10px;
1697
  }
 
 
 
 
 
 
1698
 
1699
  /* Builder Panel Node Templates
1700
  ------------------------------------------------------ */
1760
  }
1761
  .fl-builder-panel .fl-builder--panel-header {
1762
  cursor:move;
 
 
 
 
 
1763
  }
1764
  .fl-builder-panel .fl-builder--tabs {
1765
  justify-content: space-around;
1766
+ padding: 4px 24px;
 
1767
  cursor: pointer;
1768
  }
1769
  .fl-builder--tab-wrap {
1772
  flex-direction: row;
1773
  align-items: stretch;
1774
  justify-content: space-between;
1775
+ margin: auto;
1776
+ max-width: 400px;
1777
  }
1778
  .fl-builder--tabs button,
1779
  .fl-builder--tabs button:hover,
1782
  flex:1 1 100%;
1783
  display: inline-block;
1784
  text-decoration: none;
1785
+ text-transform: none;
1786
  color:inherit;
1787
  text-align: center;
1788
  letter-spacing: normal !important;
1789
+ margin: 0;
1790
  padding:5px;
1791
  cursor: pointer;
1792
+ font-size: 13px !important;
1793
+ font-weight: 500 !important;
1794
+ line-height: 1.3 !important;
1795
  background: transparent !important;
1796
  outline: none !important;
1797
  border: 2px solid transparent;
1798
  border-radius: 4px;
1799
+ min-height: 36px;
1800
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
1801
  top:0; /* fix default button active */
1802
  transition-property: background, color;
1808
  .fl-builder--tabs button.is-showing { /* active tab */
1809
  color: #0086b0;
1810
  }
1811
+ .fl-builder--panel-content {
1812
+ flex:1;
1813
+ }
1814
  .fl-builder--panel-view {
1815
  display: none;
1816
  overflow: hidden;
1818
  .fl-builder--panel-view.is-showing {
1819
  display: block;
1820
  }
 
 
 
 
 
 
 
 
 
 
 
 
1821
 
1822
  .fl-builder--content-library-panel.ui-draggable-dragging {
1823
  height: 500px !important;
1849
  font-weight: 700;
1850
  line-height: 16px;
1851
  border-radius: 4px;
1852
+ align-items: stretch;
1853
  }
1854
  .fl-builder--selector-display-label {
1855
  display: flex;
1856
  flex-direction: row;
1857
+ align-items: stretch;
1858
  font-size: inherit;
1859
  line-height: inherit;
1860
  width: 100%;
1861
+ margin: 0 !important;
1862
  padding:0 !important;
1863
  color: #6D6D6D;
1864
  background: none;
1865
+ border: 2px solid transparent;
1866
+ box-shadow: 0 1px 2px 0 rgba(0,0,0,0.12) !important;
1867
  border-radius: 4px;
1868
  font-family: inherit;
1869
+ text-transform: none;
1870
+ }
1871
+ .fl-builder--selector-display-label:hover {
1872
+ top:0;
1873
+ color: inherit;
1874
+ background: none;
1875
+ border: 2px solid transparent;
1876
+ border-radius: 4px;
1877
  }
 
1878
  .fl-builder--selector-display-label:active {
1879
  top:0;
1880
  color: inherit;
1892
  .fl-builder--group-label {
1893
  color: inherit;
1894
  flex: 0 0 0%;
1895
+ padding: 4px 10px;
1896
  padding-right: 12px;
1897
+ background: #e7ebef;
1898
+ border-radius: 3px;
1899
+ display: flex;
1900
+ flex-direction: row;
1901
+ align-items: center;
1902
  }
1903
  .fl-builder--current-view-name {
1904
  flex: 1 1 100%;
1907
  text-overflow: ellipsis;
1908
  white-space: nowrap;
1909
  font-weight: 600;
1910
+ padding: 8px 10px;
1911
  text-align: left;
1912
  }
1913
  .fl-builder--selector-menu {
1922
  border-radius: 4px;
1923
  box-shadow: 0px 0px 20px 2px rgba(0, 0, 0, 0.2);
1924
  overflow: visible;
1925
+ z-index: 2;
1926
  }
1927
  .fl-builder--selector-menu:before {
1928
  bottom: 100%;
1992
  border: 2px solid transparent !important;
1993
  text-decoration: none;
1994
  }
1995
+ .fl-builder--menu .fl-has-children > svg {
1996
+ float: right;
1997
+ margin: 0;
1998
+ height: 16px;
1999
+ width: 9px;
2000
+ margin-right: 7px;
2001
+ transition-property: transform;
2002
+ transition-duration: .15s;
2003
+ transform: rotate(-90deg);
2004
+ }
2005
+ .fl-builder--menu .fl-has-children.fl-has-children-showing > svg {
2006
+ transform: rotate(0deg);
2007
+ }
2008
  .fl-builder--menu .fl-inset {
2009
+ display: none;
2010
  padding-left:35px;
2011
  font-size: 14px;
2012
  line-height: 1.25;
2048
  right:0;
2049
  width: 380px;
2050
  max-width: 100%;
2051
+ height:44px;
2052
  padding: 4px;
2053
+ padding-left:0;
2054
  flex-direction: row;
2055
  justify-content: flex-end;
2056
  opacity:1;
2259
  border-radius: 4px;
2260
  min-height: 100px;
2261
  overflow-x: hidden;
 
2262
  }
2263
  .fl-col-has-cols.fl-col-highlight > .fl-col-content {
2264
  padding: 8px;
2426
  .fl-block-overlay * {
2427
  text-shadow: none;
2428
  -webkit-touch-callout: none;
2429
+ transition-property: border-color;
2430
+ transition-duration: .3s;
2431
  }
2432
  .fl-block-overlay-active {
2433
  position: relative;
2441
  text-shadow: none;
2442
  border-bottom-right-radius: 5px;
2443
  border-top-left-radius: 3px;
2444
+ transition-property: background-color;
2445
+ transition-duration: .3s;
2446
  }
2447
  .fl-row-overlay-header-bottom .fl-block-overlay-actions {
2448
  border-radius: 0;
2588
  padding-bottom: 15px;
2589
  padding-top: 15px;
2590
  }
2591
+ .fl-col-bg-overlay .fl-block-overlay-active.fl-module {
2592
+ z-index: 100008;
2593
+ }
2594
 
2595
  /* Global Overlays */
2596
  .fl-block-overlay-global {
3191
  ------------------------------------------------------ */
3192
 
3193
  .fl-lightbox-width-slim .fl-form-table {
3194
+ margin: 10px 12px 10px 10px !important;
3195
+ width: calc(100% - 40px);
3196
  }
3197
  .fl-lightbox-width-slim .fl-form-table th {
3198
  display: block;
3204
  display: block;
3205
  }
3206
  .fl-lightbox-width-slim .fl-form-table td:first-child {
3207
+ padding-left: 0 !important;
3208
  }
3209
  .fl-lightbox-width-slim .fl-form-table .fl-field[data-type="editor"] td:first-child {
3210
  padding-left: 0px !important;
3221
  padding: 0 5px !important;
3222
  }
3223
 
3224
+ .fl-lightbox-width-slim input.text-full + .fl-field-description,
3225
+ .fl-lightbox-width-slim select + .fl-field-description {
3226
+ display: block;
3227
+ padding: 8px 10px;
3228
+ margin: 0;
3229
+ }
3230
+
3231
  /* Slim - Selects */
3232
  .fl-lightbox-width-slim .fl-builder-settings-fields select {
3233
  width: 100%;
3234
  }
3235
 
3236
+ /* Slim - Compound Fields */
3237
+ .fl-lightbox-width-slim .fl-compound-field {
3238
+ max-width: none;
3239
+ }
3240
+
3241
  /* Slim - Color Picker */
3242
  .fl-lightbox-width-slim .fl-color-picker {
3243
  display: flex;
3244
  width:auto;
3245
  }
3246
  .fl-lightbox-width-slim .fl-color-picker-clear {
3247
+ flex: 0 0 40px;
3248
+ }
3249
+
3250
+ /* Slim - Dimension */
3251
+ .fl-lightbox-width-slim .fl-field[data-type="dimension"] .fl-field-responsive-setting {
3252
+ width: 100%;
3253
+ }
3254
+ .fl-lightbox-width-slim .fl-dimension-field-units {
3255
+ max-width: none;
3256
+ }
3257
+ .fl-lightbox-width-slim .fl-dimension-field-unit-select select {
3258
+ width: auto !important;
3259
+ }
3260
+
3261
+ /* Slim - Gradient */
3262
+ .fl-lightbox-width-slim .fl-gradient-picker-color-row {
3263
+ width: 50%;
3264
+ }
3265
+ .fl-lightbox-width-slim .fl-color-picker.fl-gradient-picker-color {
3266
+ width: 100%;
3267
+ }
3268
+
3269
+ /* Slim - Typography */
3270
+ .fl-lightbox-width-slim .fl-typography-field-align .fl-button-group-field-options {
3271
+ float: none;
3272
+ }
3273
+ .fl-lightbox-width-slim .fl-typography-field-align .fl-button-group-field-option {
3274
+ width: 100%;
3275
  }
3276
 
3277
  /* Slim - TinyMCE */
3278
  .fl-lightbox-width-slim .mce-menubtn.mce-fixed-width button {
3279
  width: 72px !important;
3280
  }
3281
+ .fl-lightbox-width-slim .fl-builder-settings-tab-description {
3282
+ margin: 20px 10px;
3283
+ }
3284
  .fl-lightbox-width-micro .mce-menubtn.mce-fixed-width button {
3285
  width: 38px !important;
3286
  }
3288
  .fl-lightbox-width-micro .mce-btn[aria-label="Blockquote"] {
3289
  display: none;
3290
  }
3291
+ .fl-lightbox-width-micro .mce-toolbar i.mce-ico {
3292
+ width: 18px;
3293
+ }
3294
+ .fl-lightbox-width-slim .fl-field[data-type="editor"] .fl-field-control-wrapper,
3295
+ .fl-lightbox-width-slim .fl-field[data-type="code"] .fl-field-control-wrapper {
3296
+ margin-left: -10px;
3297
+ margin-right: -30px;
3298
+ }
3299
+
3300
+ /* MCE Restyle */
3301
+ .fl-lightbox .wp-editor-tools {
3302
+ padding-left: 6px;
3303
+ padding-right: 28px; /* dodge the field connections toggle */
3304
+ }
3305
+ .fl-lightbox .mce-top-part::before {
3306
+ box-shadow:none !important;
3307
+ }
3308
+ .fl-lightbox div.mce-toolbar-grp {
3309
+ background: transparent;
3310
+ border:none;
3311
+ }
3312
+ .fl-lightbox div.mce-toolbar-grp > div {
3313
+ padding: 0 3px;
3314
+ }
3315
+ .fl-lightbox .fl-builder-settings .wp-switch-editor {
3316
+ background: #e7ebef;
3317
+ border:1px solid transparent;
3318
+ }
3319
+ .fl-lightbox .html-active .switch-html,
3320
+ .fl-lightbox .tmce-active .switch-tmce,
3321
+ .fl-lightbox .quicktags-toolbar {
3322
+ background:white;
3323
+ }
3324
+ .fl-lightbox .quicktags-toolbar {
3325
+ border:none;
3326
+ }
3327
+ .fl-lightbox .wp-editor-container {
3328
+ border:none;
3329
+ }
3330
+ .fl-lightbox .mce-toolbar .mce-container-body {
3331
+ display: flex;
3332
+ flex-direction: row;
3333
+ }
3334
+ .fl-lightbox-width-slim .mce-toolbar .mce-container-body {
3335
+ justify-content: center;
3336
+ }
3337
+ .fl-lightbox textarea.wp-editor-area {
3338
+ line-height: 1.5;
3339
+ padding: 20px;
3340
+ width: calc(100% - 10px); /* move resize handle out from under the scroll bar */
3341
+ }
3342
+ .fl-lightbox .wp-core-ui .button,
3343
+ .fl-lightbox .wp-core-ui .button-secondary {
3344
+ border:none;
3345
+ box-shadow:none;
3346
+ background: #e7ebef;
3347
+ }
3348
+
3349
+ /* Slim - Shadow */
3350
+ .fl-lightbox-width-slim .fl-shadow-field .fl-dimension-field-units {
3351
+ width: auto;
3352
+ }
3353
+ .fl-lightbox-width-slim .fl-shadow-field .fl-dimension-field-units input {
3354
+ max-width: none;
3355
+ width: 100% !important;
3356
+ }
3357
 
3358
  /* Slim - Repeaters */
3359
  .fl-lightbox-width-slim .fl-builder-field-multiple {
3367
  .fl-lightbox-width-slim .fl-builder-field-multiple .fl-field-control {
3368
  width: 100% !important;
3369
  }
3370
+ .fl-lightbox-width-slim .fl-builder-field-multiple .fl-form-field-preview-text {
3371
+ max-width: 225px;
3372
+ }
3373
  .fl-lightbox-width-slim .fl-builder-field-multiple .fl-builder-field-actions {
3374
  position: absolute !important;
3375
  top:0;
3376
  right:0;
3377
  width: 70px;
3378
+ z-index: 1;
3379
+ }
3380
+ .fl-lightbox-width-slim .fl-builder-field-actions-single .fl-builder-field-copy {
3381
+ float: right !important;
3382
+ margin-right: 5px;
3383
  }
3384
 
3385
  /* Slim - Time */
3391
  ------------------------------------------------------ */
3392
 
3393
  .fl-builder-settings-tabs {
 
 
 
3394
  display: flex;
3395
  flex-direction: row;
3396
+ align-items: stretch;
3397
  overflow: hidden;
3398
+ height: 32px;
3399
+ background: #e7ebef;
3400
  }
3401
 
3402
  .fl-builder-content-group-select {
3410
  width: 100%;
3411
  -webkit-appearance: none;
3412
  -moz-appearance: none;
 
3413
  box-sizing: border-box;
3414
  padding: 8px 10px;
3415
  background: white url(../img/svg/select-arrow-down-alt2.svg) no-repeat center right 10px !important;
3437
  background: transparent;
3438
  border: 2px solid transparent;
3439
  border-radius:0;
 
3440
  margin: 0;
3441
  outline: none;
3442
+ padding: 1px 16px;
3443
  text-decoration: none !important;
3444
+ font-size: 13px;
3445
  font-weight: normal !important;
3446
  flex: 0 0 auto;
3447
  white-space: nowrap;
3448
  overflow: hidden;
3449
  text-overflow: ellipsis;
3450
+ display:flex;
3451
+ align-items:center;
3452
+ justify-content: center;
 
 
 
 
 
 
 
3453
  }
3454
  body .fl-lightbox-width-slim .fl-builder-settings-tabs > * {
3455
  flex: 1 1 auto;
 
3456
  }
3457
  body .fl-builder-settings-tabs > .fl-builder-settings-tabs-more {
3458
  flex: 0 0 60px;
3495
  color: #0086b0 !important;
3496
  fill: #0086b0 !important;
3497
  position: relative;
3498
+ background: #ffffff;
3499
  }
3500
  .fl-builder-settings-tabs .fl-overflowed,
3501
  .fl-builder-settings-tabs .fl-active.fl-overflowed {
3608
  .fl-form-table th {
3609
  border: none !important;
3610
  font-weight: normal !important;
3611
+ padding: 10px 15px 10px 10px !important;
3612
  padding-left:30px !important;
3613
  text-align: left !important;
3614
  vertical-align: top !important;
3623
  width: auto;
3624
  max-width: 100%;
3625
  }
3626
+ .fl-form-table th label i {
3627
+ color: #808080;
3628
+ }
3629
+ .fl-form-table th label i:hover {
3630
+ color: #555555;
3631
+ }
3632
  .fl-form-table td {
3633
  background: transparent !important;
3634
  border: none !important;
3637
  text-align: left !important;
3638
  }
3639
  .fl-lightbox-width-slim .fl-form-table td {
3640
+ padding: 4px 0 5px;
3641
  }
3642
 
3643
  /* Settings Fields
3659
  }
3660
  .fl-builder-settings-fields .fl-nanoscroller-content {
3661
  padding: 0;
3662
+ padding-top: 4px;
3663
  }
3664
  .fl-builder-settings-fields .fl-field-control-wrapper {
3665
  position: relative;
3677
  .fl-builder-settings-fields input[type=search],
3678
  .fl-builder-settings-fields input[type=tel],
3679
  .fl-builder-settings-fields input[type=url],
3680
+ .fl-builder-settings-fields input[type=date],
3681
  .fl-builder-settings-fields select {
3682
  background: #fff !important;
3683
  border-color: transparent !important;
3692
  line-height: 15px;
3693
  margin: 1px;
3694
  outline: none;
3695
+ padding: 3px 6px;
3696
  width: auto;
3697
  box-sizing: border-box;
3698
  }
3704
  .fl-builder-settings-fields input[type=search],
3705
  .fl-builder-settings-fields input[type=tel],
3706
  .fl-builder-settings-fields input[type=url],
3707
+ .fl-builder-settings-fields input[type=date],
3708
  .fl-builder-settings-fields select:not(multiple) {
3709
  height: 36px !important;
3710
  }
3724
  .fl-builder-lightbox .fl-builder-settings-fields input[type=search]:focus,
3725
  .fl-builder-lightbox .fl-builder-settings-fields input[type=tel]:focus,
3726
  .fl-builder-lightbox .fl-builder-settings-fields input[type=url]:focus,
3727
+ .fl-builder-lightbox .fl-builder-settings-fields input[type=date]:focus,
3728
  .fl-builder-lightbox .fl-builder-settings-fields select:focus {
3729
  border-width: 2px !important;
3730
  border-style: solid !important;
3752
  font-weight: normal;
3753
  user-select: none;
3754
  margin-bottom:3px;
3755
+ font-size:12px;
3756
  }
3757
  .fl-builder-settings-fields select {
3758
  -webkit-appearance: none;
3759
  -moz-appearance: none;
 
3760
  box-sizing: border-box;
3761
  color: #000;
3762
  margin: 0;
3772
  .fl-photo-field select,
3773
  .fl-builder-custom-field select {
3774
  -webkit-box-shadow: none;
3775
+ box-shadow: none;
3776
  border-color: #e6eaed !important;
3777
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3778
 
3779
+ /* Settings Sections */
 
 
 
 
 
 
 
 
 
 
 
 
3780
  .fl-builder-settings-section:first-child {
3781
  border-top: none !important;
3782
  }
3783
+ .fl-builder-settings-section-header {
3784
+ background-color: #e7ebef;
3785
+ border-top: 4px solid #e7ebef;
3786
+ cursor: pointer;
3787
+ height: 30px;
3788
+ display: flex;
3789
+ flex-direction: row;
3790
  }
3791
  .fl-builder-settings-description {
3792
  padding: 10px;
3798
  .fl-builder-settings-fields table {
3799
  margin: 20px 0 20px;
3800
  }
3801
+ .fl-builder-settings-fields .fl-builder-settings-title {
3802
+ display:flex;
3803
+ align-items: center;
3804
+ background: #F5F7F9;
3805
+ color: #353535;
3806
+ padding:2px 10px;
3807
  margin:0;
3808
+ font-size: 13px !important;
3809
+ font-weight: 400;
 
 
3810
  user-select: none;
3811
+ border: 2px solid transparent;
3812
+ border-radius: 0px;
3813
+ }
3814
+ .fl-builder-settings-fields .fl-builder-settings-title:hover {
3815
+ top:0;
3816
+ }
3817
+ .fl-builder-settings-fields .fl-builder-settings-title:active {
3818
+ top:0;
3819
+ }
3820
+ .fl-builder-settings-fields .fl-builder-settings-title:focus {
3821
+ top:0;
3822
+ border-color: #e0e4ea;
3823
+ }
3824
+ .fl-builder-settings-fields .fl-builder-settings-title > svg {
3825
+ height: 6px;
3826
+ width: 9px;
3827
+ margin-right: 7px;
3828
+ transition-property: transform;
3829
+ transition-duration: .15s;
3830
+ }
3831
+ .fl-builder-settings-section-collapsed {
3832
+ margin-bottom:4px;
3833
+ }
3834
+ .fl-builder-settings-section-collapsed .fl-builder-settings-section-content {
3835
+ display: none;
3836
+ }
3837
+ .fl-builder-settings-section-collapsed .fl-builder-settings-title {
3838
+ background:transparent;
3839
+ flex: 1 1 100%;
3840
+ }
3841
+ .fl-builder-settings-section-collapsed .fl-builder-settings-title > svg {
3842
+ transform: rotate(-90deg);
3843
  }
3844
 
3845
  /* Core WordPress UI */
3877
  .wp-core-ui input[type=search],
3878
  .wp-core-ui input[type=tel],
3879
  .wp-core-ui input[type=url],
3880
+ .wp-core-ui input[type=date],
3881
  .wp-core-ui select {
3882
  background-color: #fff;
3883
  border-color: #dfdfdf;
3901
  .wp-core-ui input[type=search]:focus,
3902
  .wp-core-ui input[type=tel]:focus,
3903
  .wp-core-ui input[type=url]:focus,
3904
+ .wp-core-ui input[type=date]:focus,
3905
  .wp-core-ui select:focus {
3906
  background: transparent;
3907
  border-color: #aaa;
3914
  /* Responsive Options */
3915
  .fl-field-responsive-setting {
3916
  display: inline-block;
3917
+ width: 100%;
3918
  }
3919
  .fl-field-responsive-setting-medium,
3920
  .fl-field-responsive-setting-responsive {
3921
  display: none;
3922
  }
3923
+ .fl-field-control-wrapper i.fl-field-responsive-toggle {
3924
+ padding: 9px 0 0 0;
3925
+ position: absolute;
3926
+ left: -25px;
3927
+ }
3928
  i.fl-field-responsive-toggle {
3929
  color: #808080;
3930
  cursor: pointer;
3945
  width: 100%;
3946
  }
3947
 
3948
+ /* Add predefined value dropdown for text field */
3949
+ .fl-builder-settings-fields .fl-text-field-add-value {
3950
+ min-width: 50%;
3951
+ margin-top: .62em;
3952
+ }
3953
+
3954
  /* Textarea */
3955
  .fl-builder-settings-fields textarea {
3956
  width: 100%;
3957
  }
3958
 
3959
+ /* Shadow */
3960
+ .fl-field[data-type="shadow"] .fl-field-control-wrapper {
3961
+ display: flex;
3962
+ }
3963
+ .fl-shadow-field .fl-color-picker {
3964
+ margin-bottom: 15px;
3965
+ width: 100%;
3966
+ }
3967
+
3968
  /* Color Picker */
3969
  .fl-color-picker {
3970
  cursor: pointer;
3989
  width: 45px !important;
3990
  }
3991
 
3992
+ /* Gradient Picker */
3993
+ .fl-gradient-picker-type {
3994
+ display: flex;
3995
+ margin-bottom: 15px;
3996
+ }
3997
+ .fl-gradient-picker-type input {
3998
+ margin: 0 !important;
3999
+ }
4000
+ .fl-gradient-picker-type select {
4001
+ margin-bottom: 0 !important;
4002
+ }
4003
+ .fl-gradient-picker-type-select {
4004
+ margin-right: 10px !important;
4005
+ }
4006
+ .fl-gradient-picker-colors {
4007
+ display: flex;
4008
+ }
4009
+ .fl-gradient-picker-color-row {
4010
+ display: flex;
4011
+ margin-right: 15px;
4012
+ }
4013
+ .fl-gradient-picker-color-row:last-child {
4014
+ margin-right: 0;
4015
+ }
4016
+ .fl-color-picker.fl-gradient-picker-color {
4017
+ margin-right: 0;
4018
+ }
4019
+ .fl-color-picker.fl-gradient-picker-color .fl-color-picker-color {
4020
+ border-top-right-radius: 0 !important;
4021
+ border-bottom-right-radius: 0 !important;
4022
+ }
4023
+ .fl-gradient-picker .fl-gradient-picker-stop input {
4024
+ border-top-left-radius: 0 !important;
4025
+ border-bottom-left-radius: 0 !important;
4026
+ margin: 0 !important;
4027
+ }
4028
+
4029
+ /* Dimension Field */
4030
+ .fl-field[data-type="dimension"] .fl-field-label label {
4031
+ padding-right: 35px;
4032
+ }
4033
+ .fl-field[data-type="dimension"] .fl-field-control-wrapper {
4034
+ display: flex;
4035
+ }
4036
+ .fl-field[data-type="dimension"] .fl-field-description {
4037
+ padding: 9px 0 0 5px;
4038
+ }
4039
+ .fl-field[data-type="dimension"] .fl-field-responsive-setting {
4040
+ width: auto;
4041
+ }
4042
+ .fl-dimension-field-units {
4043
+ border-radius: 4px;
4044
+ box-shadow: 0 2px 4px 0 rgba(0,0,0,0.12);
4045
+ display: flex;
4046
+ height: 36px;
4047
+ margin: 1px 1px 20px 1px;
4048
+ position: relative;
4049
+ max-width: 350px;
4050
+ }
4051
+ .fl-dimension-field-units > * {
4052
+ border-right: 1px solid #e6eaed;
4053
+ width: 100%;
4054
+ }
4055
+ body .fl-dimension-field-units > *:last-child {
4056
+ border-right: none !important;
4057
+ }
4058
+ body .fl-dimension-field-units > *:first-child > input[type] {
4059
+ border-top-left-radius: 4px !important;
4060
+ border-bottom-left-radius: 4px !important;
4061
+ }
4062
+ body .fl-dimension-field-units > *:last-child > * {
4063
+ border-top-right-radius: 4px !important;
4064
+ border-bottom-right-radius: 4px !important;
4065
+ }
4066
+ .fl-dimension-field-unit input[type],
4067
+ .fl-dimension-field-units .fl-field-unit-select {
4068
+ box-shadow: none !important;
4069
+ margin: 0 !important;
4070
+ border-radius:0px !important;
4071
+ }
4072
+ .fl-dimension-field-unit input {
4073
+ width: 100% !important;
4074
+ }
4075
+ .fl-dimension-field-unit input::-webkit-outer-spin-button,
4076
+ .fl-dimension-field-unit input::-webkit-inner-spin-button {
4077
+ -webkit-appearance: none;
4078
+ }
4079
+ .fl-dimension-field-unit input[type="number"] {
4080
+ -moz-appearance: textfield;
4081
+ }
4082
+ .fl-dimension-field-unit label {
4083
+ padding: 5px 0 0;
4084
+ font-size: 11px;
4085
+ font-weight: bold;
4086
+ color: inherit !important;
4087
+ display: block;
4088
+ text-align: center;
4089
+ opacity: 0.5;
4090
+ }
4091
+ .fl-dimension-field-unit .fl-field-popup-slider {
4092
+ margin-top: 27px;
4093
+ }
4094
+
4095
+ /* Dimension Field Link */
4096
+ i.fl-dimension-field-link {
4097
+ color: #808080;
4098
+ cursor: pointer;
4099
+ font-size: 15px !important;
4100
+ height: auto;
4101
+ line-height: 18px !important;
4102
+ text-align: left;
4103
+ vertical-align: middle;
4104
+ width: 20px;
4105
+ }
4106
+ i.fl-dimension-field-link:hover {
4107
+ color: #000;
4108
+ }
4109
+ i.fl-dimension-field-link.dashicons-editor-unlink,
4110
+ i.fl-dimension-field-link.dashicons-editor-unlink:hover {
4111
+ color: #0086b0;
4112
+ }
4113
+ .fl-field-label .fl-dimension-field-link,
4114
+ .fl-lightbox-width-slim .fl-dimension-field-link {
4115
+ display: none;
4116
+ }
4117
+ .fl-lightbox-width-slim .fl-field-label .fl-dimension-field-link {
4118
+ display: inline-block;
4119
+ }
4120
+ .fl-field-control-wrapper .fl-dimension-field-link {
4121
+ padding: 9px 0 0 0;
4122
+ left: -50px;
4123
+ position: absolute;
4124
+ }
4125
+ .fl-dimension-field-unit-select {
4126
+ display: flex;
4127
+ width: auto !important;
4128
+ }
4129
+
4130
+ /* Unit Field */
4131
+ .fl-field[data-type="unit"] .fl-field-control-wrapper {
4132
+ display: flex;
4133
+ }
4134
+ .fl-field[data-type="unit"] .fl-field-description {
4135
+ margin-left: 7px !important;
4136
+ padding-top: 9px;
4137
+ }
4138
+ .fl-field[data-type="unit"] .fl-field-responsive-setting {
4139
+ width: auto;
4140
+ }
4141
+ .fl-unit-field-inputs {
4142
+ background: transparent;
4143
+ border-radius: 4px;
4144
+ box-shadow: 0 2px 4px 0 rgba(0,0,0,0.12);
4145
+ display: flex;
4146
+ }
4147
+ .fl-unit-field-inputs input[type],
4148
+ .fl-unit-field-inputs .fl-field-unit-select {
4149
+ box-shadow: none !important;
4150
+ margin: 0 !important;
4151
+ border-top-right-radius: 0px !important;
4152
+ border-bottom-right-radius: 0px !important;
4153
+ }
4154
+ .fl-unit-field-inputs .fl-field-unit-select {
4155
+ display: flex;
4156
+ justify-content: center;
4157
+ align-items: center;
4158
+ }
4159
+ .fl-unit-field-inputs input::-webkit-outer-spin-button,
4160
+ .fl-unit-field-inputs input::-webkit-inner-spin-button {
4161
+ -webkit-appearance: none;
4162
+ }
4163
+ .fl-unit-field-inputs input[type="number"] {
4164
+ -moz-appearance: textfield;
4165
+ }
4166
+ .fl-unit-field-input {
4167
+ border-right: 1px solid #e6eaed !important;
4168
+ }
4169
+ body .fl-unit-field-input:last-child {
4170
+ border-right: none !important;
4171
+ }
4172
+ body .fl-unit-field-input:last-child > * {
4173
+ border-top-right-radius: 4px !important;
4174
+ border-bottom-right-radius: 4px !important;
4175
+ }
4176
+ .fl-unit-field-unit-select {
4177
+ display: flex;
4178
+ width: auto !important;
4179
+ }
4180
+
4181
+ /* Field Unit Select */
4182
+ select.fl-field-unit-select {
4183
+ background-color: #E7EBEF !important;
4184
+ border-top-left-radius: 0 !important;
4185
+ border-bottom-left-radius: 0 !important;
4186
+ }
4187
+ div.fl-field-unit-select {
4188
+ background-color: #E7EBEF !important;
4189
+ padding: 9px 7px !important;
4190
+ width: 100%;
4191
+ }
4192
+
4193
+ /* Field Slider Popups */
4194
+ .fl-field-popup-slider {
4195
+ background: #fff;
4196
+ border-radius: 4px;
4197
+ box-shadow: 0 4px 25px 0 rgba(0,0,0,0.18);
4198
+ display: none;
4199
+ margin-top: 10px;
4200
+ padding: 15px;
4201
+ position: absolute;
4202
+ left: 0;
4203
+ right: 0;
4204
+ z-index: 9999;
4205
+ }
4206
+ .fl-field-popup-slider-top {
4207
+ margin-top: 0 !important;
4208
+ top: -100%;
4209
+ transform: translateY(-10px);
4210
+ }
4211
+ .fl-field-popup-slider-input {
4212
+ background: #E7EBEF;
4213
+ cursor: pointer;
4214
+ height: 4px;
4215
+ text-align: left;
4216
+ position: relative;
4217
+ border-radius: 3px;
4218
+ }
4219
+ .fl-field-popup-slider-input .ui-slider-handle {
4220
+ background: #fff;
4221
+ border: 2px solid #3AA4CC;
4222
+ border-radius: 100%;
4223
+ cursor: pointer;
4224
+ height: 12px;
4225
+ width: 12px;
4226
+ position: absolute;
4227
+ top: -6px;
4228
+ margin-left: -7px;
4229
+ }
4230
+ .fl-field-popup-slider-input .ui-slider-handle:focus {
4231
+ outline: none;
4232
+ }
4233
+ .fl-field-popup-slider-arrow {
4234
+ position: absolute;
4235
+ top: -22px;
4236
+ }
4237
+ .fl-field-popup-slider-arrow:after {
4238
+ content: ' ';
4239
+ border-color: transparent;
4240
+ border-style: solid;
4241
+ border-width: 8px;
4242
+ border-top-width: 0;
4243
+ border-bottom-color: #fff;
4244
+ width: 0;
4245
+ height: 0;
4246
+ }
4247
+ .fl-field-popup-slider-top .fl-field-popup-slider-arrow {
4248
+ top: auto;
4249
+ bottom: -24px;
4250
+ }
4251
+ .fl-field-popup-slider-top .fl-field-popup-slider-arrow:after {
4252
+ border-bottom-width: 0;
4253
+ border-top-width: 8px;
4254
+ border-top-color: #fff;
4255
+ }
4256
+ input[type=number].fl-field-popup-slider-focus {
4257
+ border: 2px solid #00a0d2 !important;
4258
+ }
4259
+
4260
+ /* Font Field */
4261
+ .fl-font-field {
4262
+ display: flex;
4263
+ }
4264
+ .fl-font-field label {
4265
+ display: block !important;
4266
+ margin: 0 !important;
4267
+ padding: 0 0 6px 12px;
4268
+ }
4269
+ .fl-font-field .fl-font-field-font-wrapper {
4270
+ margin-right: 8px;
4271
+ width: 70% !important;
4272
+ }
4273
+ .fl-font-field .fl-font-field-weight-wrapper {
4274
+ width:30% !important;
4275
+ }
4276
+
4277
+ /* Compound Fields */
4278
+ .fl-compound-field {
4279
+ max-width: 350px;
4280
+ }
4281
+
4282
+ .fl-compound-field-section-toggle {
4283
+ background: #E7EAEF;
4284
+ border-radius: 4px;
4285
+ border-top: 2px solid transparent;
4286
+ border-bottom: 2px solid transparent;
4287
+ cursor: pointer;
4288
+ align-items: center;
4289
+ display: flex;
4290
+ height: 32px;
4291
+ margin-bottom: 8px;
4292
+ padding: 0 12px;
4293
+ }
4294
+ .fl-compound-field-section-toggle:hover {
4295
+ background: #dadfe5;
4296
+ }
4297
+ .fl-compound-field-section-toggle .dashicons {
4298
+ font-size: 15px;
4299
+ height: 15px;
4300
+ margin-right: 5px;
4301
+ width: 15px;
4302
+ }
4303
+ .fl-compound-field-section:last-child .fl-compound-field-section-toggle {
4304
+ margin-bottom: 0;
4305
+ }
4306
+
4307
+ .fl-compound-field-section.fl-compound-field-section-visible {
4308
+ padding-bottom: 12px;
4309
+ }
4310
+ .fl-compound-field-section.fl-compound-field-section-visible:last-child {
4311
+ padding-bottom: 0;
4312
+ }
4313
+ .fl-compound-field-section-visible .fl-compound-field-section-toggle {
4314
+ background: transparent;
4315
+ border-top: 2px solid #E7EBEF;
4316
+ border-radius: 0;
4317
+ }
4318
+ .fl-compound-field-section-visible .fl-compound-field-section-toggle:hover {
4319
+ background: transparent;
4320
+ }
4321
+ .fl-compound-field-section-visible .fl-compound-field-section-toggle .dashicons:before {
4322
+ content: '\f347';
4323
+ }
4324
+
4325
+ .fl-compound-field-row {
4326
+ display: none;
4327
+ padding-bottom: 12px;
4328
+ }
4329
+ .fl-compound-field-section-visible .fl-compound-field-row {
4330
+ display: flex;
4331
+ }
4332
+
4333
+ .fl-compound-field-label {
4334
+ display: block !important;
4335
+ margin: 0 !important;
4336
+ padding: 0 0 6px 12px;
4337
+ }
4338
+ .fl-compound-field-label-bottom {
4339
+ padding: 6px 0 0 12px;
4340
+ }
4341
+ .fl-compound-field-label .fl-dimension-field-link {
4342
+ display: inline-block;
4343
+ padding: 0 0 0 2px;
4344
+ position: relative;
4345
+ left: auto;
4346
+ top: -1px;
4347
+ }
4348
+
4349
+ .fl-compound-field-setting {
4350
+ padding-right: 8px;
4351
+ width: 100%;
4352
+ }
4353
+ .fl-compound-field-setting:last-child {
4354
+ padding-right: 0;
4355
+ }
4356
+ .fl-compound-field-setting select {
4357
+ margin: 0 !important;
4358
+ width: 100%;
4359
+ }
4360
+ .fl-compound-field-setting .fl-unit-field-input input {
4361
+ width: 100% !important;
4362
+ border-top-right-radius: 0px !important;
4363
+ border-bottom-right-radius: 0px !important;
4364
+ }
4365
+ .fl-compound-field-setting .fl-unit-field-input {
4366
+ width: 50% !important;
4367
+ }
4368
+ .fl-compound-field-setting .fl-unit-field-input select.fl-field-unit-select {
4369
+ background-position: center right 2px !important;
4370
+ padding: 2px 5px !important;
4371
+ width: 100%;
4372
+ font-size: 11px;
4373
+ }
4374
+
4375
+ /* Typography Field */
4376
+ .fl-typography-field .fl-font-field-font-wrapper {
4377
+ margin-right: 8px !important;
4378
+ }
4379
+ .fl-typography-field-spacing {
4380
+ width: calc( 33.33% - 8px );
4381
+ }
4382
+ .fl-typography-field-transform {
4383
+ width: 66.66%;
4384
+ }
4385
+ .fl-typography-field-transform .fl-button-group-field-options {
4386
+ float: none;
4387
+ }
4388
+ .fl-typography-field-transform .fl-button-group-field-option {
4389
+ width: 100%;
4390
+ padding: 0 7px;
4391
+ }
4392
+ .fl-typography-field .fl-shadow-field {
4393
+ display: flex;
4394
+ }
4395
+ .fl-typography-field .fl-shadow-field .fl-color-picker {
4396
+ margin: 0 8px 0 0;
4397
+ width: calc( 33.33% - 8px );
4398
+ }
4399
+ .fl-typography-field .fl-shadow-field .fl-dimension-field-units {
4400
+ margin-left: 0;
4401
+ margin-top: 0;
4402
+ margin-right: 0;
4403
+ width: 66.66%;
4404
+ }
4405
+
4406
+ /* Button Group Field */
4407
+ .fl-button-group-field-options {
4408
+ background: #E7EBEF;
4409
+ border-radius: 4px;
4410
+ box-shadow: 0 2px 4px 0 rgba(0,0,0,0.12);
4411
+ display: flex;
4412
+ float: left;
4413
+ height: 36px;
4414
+ overflow: hidden;
4415
+ }
4416
+ .fl-button-group-field-option {
4417
+ cursor: pointer;
4418
+ display: flex;
4419
+ align-items: center;
4420
+ justify-content: center;
4421
+ padding: 0 5px;
4422
+ border-radius:0px;
4423
+ border: 2px solid transparent;
4424
+ background: transparent;
4425
+ }
4426
+ .fl-button-group-field-option:hover {
4427
+ top:0;
4428
+ background-color: transparent;
4429
+ color: #000000;
4430
+ border: 2px solid transparent;
4431
+ }
4432
+ .fl-button-group-field-option:focus {
4433
+ top:0;
4434
+ background-color: transparent;
4435
+ border: 2px solid #00a0d2;
4436
+ color: #333;
4437
+ }
4438
+ .fl-button-group-field-option:first-child {
4439
+ border-top-left-radius: 3px;
4440
+ border-bottom-left-radius: 3px;
4441
+ }
4442
+ .fl-button-group-field-option:last-child {
4443
+ border-top-right-radius: 3px;
4444
+ border-bottom-right-radius: 3px;
4445
+ }
4446
+ .fl-button-group-field-option[data-selected="1"] {
4447
+ background-color: #fff;
4448
+ color: #000000;
4449
+ }
4450
+ .fl-button-group-field-option i {
4451
+ color: #6B6E75;
4452
+ }
4453
+ .fl-button-group-field-option:hover i {
4454
+ color: #333;
4455
+ }
4456
+
4457
+ /* Compound Fields */
4458
+
4459
+ .fl-compound-field-cell {
4460
+ width: 50%;
4461
+ display: block;
4462
+ float:left;
4463
+ padding-top: 13px;
4464
+ }
4465
+ .fl-compound-field-cell:first-child {
4466
+ padding-right: 4px;
4467
+ }
4468
+ .fl-compound-field-cell:last-child {
4469
+ padding-left: 4px;
4470
+ }
4471
+ .fl-compound-field-cell label {
4472
+ padding: 5px 0 0;
4473
+ font-size: 11px;
4474
+ font-weight: bold;
4475
+ color: inherit !important;
4476
+ display: block;
4477
+ text-align: center;
4478
+ opacity: 0.5;
4479
+ }
4480
+
4481
+ /* Shape Transform Field */
4482
+ .fl-shape-transform-field .fl-compound-field-row {
4483
+ display: flex;
4484
+ flex-direction: row;
4485
+ }
4486
+ .fl-shape-transform-field .fl-compound-field-row > * {
4487
+ width: auto;
4488
+ flex: 1 1 auto;
4489
+ }
4490
+ .fl-shape-transform-field .fl-compound-field-row > *:first-child {
4491
+ flex: 0 0 auto;
4492
+ }
4493
+ .fl-shape-transform-field .fl-shape-orientation-controls {
4494
+ display: flex;
4495
+ flex-direction: row;
4496
+ }
4497
+ .fl-shape-transform-field .fl-shape-orientation-controls > * {
4498
+ flex: 0 0 auto;
4499
+ }
4500
+ .fl-shape-transform-field .fl-shape-orientation-controls .fl-button-group-field > *,
4501
+ .fl-shape-transform-field .fl-shape-orientation-controls .fl-button-group-field > * button {
4502
+ border-radius:0px;
4503
+ }
4504
+ .fl-shape-orientation-controls .fl-button-group-field:first-child > *,
4505
+ .fl-shape-orientation-controls .fl-button-group-field:first-child > * button {
4506
+ border-top-left-radius: 4px;
4507
+ border-bottom-left-radius:4px;
4508
+ }
4509
+ .fl-shape-orientation-controls .fl-button-group-field:last-child > *,
4510
+ .fl-shape-orientation-controls .fl-button-group-field:last-child > * button {
4511
+ border-top-right-radius: 4px;
4512
+ border-bottom-right-radius: 4px;
4513
+ }
4514
+
4515
  /* Custom Fields */
4516
  .fl-builder-custom-field {
4517
  background:white;
4556
  }
4557
  .fl-photo-field .fl-photo-preview select {
4558
  margin: 8px 0 8px 10px;
4559
+ width: calc(100% - 10px);
4560
  }
4561
  .fl-photo-field.fl-photo-no-attachment .fl-photo-preview select {
4562
  display: none;
4563
  }
4564
  .fl-photo-field .fl-photo-preview-filename {
4565
  display: none;
4566
+ font-size: 13px;
4567
  font-weight: bold;
4568
+ margin: 5px 0 9px 11px;
4569
  }
4570
  .fl-photo-field.fl-photo-no-attachment .fl-photo-preview-filename {
4571
  display: inline-block;
4591
  }
4592
  .fl-builder-edit .media-frame {
4593
  -webkit-backface-visibility: hidden;
4594
+ backface-visibility: hidden;
4595
  }
4596
  .fl-builder-edit .media-modal-content h1 {
4597
  font-family: inherit;
4687
  margin: 0 0 0 8px;
4688
  }
4689
 
 
4690
  /* Icon Fields */
4691
  .fl-icon-field .fl-icon-select,
4692
  .fl-icon-field.fl-icon-empty .fl-icon-preview {
4710
  display: none;
4711
  }
4712
  .fl-builder-settings .wp-switch-editor {
 
 
4713
  border-radius: 0;
4714
  color: #333;
4715
+ margin-top:2px;
 
 
4716
  }
4717
  .fl-builder-settings .mce-toolbar .mce-btn-group .mce-btn {
4718
  margin: 2px 0;
4817
  }
4818
  .fl-link-field .fl-link-field-input-wrap button {
4819
  flex: 0 0 0%;
4820
+ height: 36px;
4821
+ margin: 1px 1px 1px 5px;
4822
+ }
4823
+ .fl-link-field-options-wrap {
4824
+ padding: 7px 0 0 12px;
4825
+ }
4826
+ .fl-link-field-options-wrap label {
4827
+ margin-right: 7px;
4828
+ }
4829
+ .fl-link-field-options-wrap span {
4830
+ font-size: 11px;
4831
+ font-weight: bold;
4832
+ color: inherit !important;
4833
+ text-align: center;
4834
+ opacity: 0.5;
4835
  }
 
 
4836
  .fl-link-field-search {
4837
  display: none;
4838
  border: 2px solid #e6eaed;
4849
  .fl-link-field-search-cancel {
4850
  margin-top: 6px;
4851
  }
4852
+ .fl-link-field-search input {
4853
+ box-shadow: none !important;
4854
+ width: 100% !important;
4855
+ padding: 3px 9px !important;
4856
+ }
4857
+ .fl-link-field-search #as-original-link-search {
4858
+ width:100%;
4859
+ }
4860
+ .fl-field-connections-toggle {
4861
+ padding: 10px 0px;
4862
+ }
4863
+ .fl-field[data-type="editor"] .fl-field-connections-toggle,
4864
+ .fl-field[data-type="code"] .fl-field-connections-toggle {
4865
+ align-items: flex-start;
4866
+ }
4867
+ .fl-field[data-type="link"] .fl-field-connections-toggle {
4868
+ height: 24px;
4869
+ margin-top: 1px;
4870
+ align-items: flex-start;
4871
+ }
4872
+
4873
+ .fl-field[data-type="link"] .fl-field-connection {
4874
+ bottom: 25px;
4875
+ }
4876
+ .fl-field-connections-menu[data-field="fl-field-text"] {
4877
+ margin-top:30px
4878
+ }
4879
 
4880
  /* Tooltips */
4881
  .fl-help-tooltip {
4920
  .fl-field-control .fl-form-field {
4921
  margin-bottom: 0;
4922
  }
4923
+ .fl-form-field[data-preview-text="icon"] {
4924
+ display: flex;
4925
+ align-items: center;
4926
+ }
4927
  .fl-form-field-preview-text i {
4928
  display: inline-block;
4929
  font-size: 18px;
4930
  line-height: 22px;
4931
+ margin-right: 10px;
4932
  }
4933
  .fl-builder-field-actions {
4934
  padding-left: 0 !important;
4967
  .fl-builder-field-actions-single .fl-builder-field-delete {
4968
  display: none !important;
4969
  }
 
 
 
4970
 
4971
  .fl-builder-field-multiple .fl-field-label,
4972
  .fl-builder-field-multiple .fl-field-control,
5021
  }
5022
  .fl-lightbox .fl-field-connection-content {
5023
  border: 2px solid transparent !important;
5024
+ background: #e7ebef !important;
5025
  }
5026
  .fl-field-connection-content .fl-field-connection-label {
5027
  color: #676f7a !important;
5028
  }
5029
+ .fl-field-connections-toggle {
5030
+ pointer-events: none;
5031
+ width: 20px;
5032
+ right: -25px;
5033
+ }
5034
+ .has-scrollbar .fl-field-connections-toggle {
5035
+ right: -22px;
5036
+ }
5037
+ .fl-field-connections-toggle-open {
5038
+ transform: none !important;
5039
+ }
5040
+ .fl-field-connections-toggle i {
5041
+ pointer-events: auto;
5042
+ color: #abb1ba;
5043
+ font-size: 13px !important;
5044
+ transition-property: transform;
5045
+ transition-duration: .15s;
5046
+ }
5047
+ .fl-field-connections-toggle-open i {
5048
+ transform: rotate(-45deg);
5049
+ }
5050
 
5051
  /* Auto Suggest */
5052
  ul.as-selections {
5164
  position: relative;
5165
  top: 2px;
5166
  }
5167
+ .fl-lightbox-width-slim .fl-builder-service-account-delete {
5168
+ display: block;
5169
+ padding-top: 7px;
5170
+ }
5171
  .fl-builder-service-connect-row .fl-field-description,
5172
  #fl-field-visibility_user_capability .fl-field-description {
5173
  background: #f0f0f0;
5438
  display:none;
5439
  box-sizing: border-box;
5440
  position: fixed;
5441
+ top:calc(45px + 10px);
5442
  left: 10px;
5443
  width: 360px;
5444
  color: #222;
5445
  max-height: calc(100% - 66px);
5446
  border-radius: 4px;
5447
  background: #ffffff;
5448
+ border: none;
5449
  border-top: 3px solid #00a0d2;
5450
+ box-shadow: 0px 11px 45px 8px rgba(0, 0, 0, 0.1);
5451
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
5452
  font-size: 14px !important;
5453
 
5560
  line-height: 1.1;
5561
  cursor: pointer;
5562
  opacity:1;
5563
+ text-transform: none;
5564
  }
5565
  .fl-builder--menu-item:hover {
5566
  background: #eaf1f8;
5587
  }
5588
  .fl-builder--menu hr {
5589
  margin: 8px 0;
5590
+ background: #e6eaed !important;
5591
+ height: 1px;
5592
  border: none;
5593
  }
5594
  .fl-builder--menu .fl-builder-video-wrap {
5662
  ------------------------------------------------------ */
5663
 
5664
  .fl-field-connections-menu {
5665
+ z-index: 999999;
5666
  }
5667
+ .fl-field[data-type="editor"] .fl-field-connections-toggle,
5668
+ .fl-field[data-type="code"] .fl-field-connections-toggle {
5669
+ right: 5px !important;
5670
+ }
5671
+ .fl-field-connections-inline-toggle {
5672
+ display: inline;
5673
+ color: #9a9b9c;
5674
+ margin-left: 6px;
5675
+ }
5676
+ .fl-field-connections-inline-toggle i {
5677
+ transition-property: transform;
5678
+ transition-duration: .15s;
5679
+ }
5680
+ .fl-field-connections-inline-toggle.fl-field-connections-toggle-open i {
5681
+ transform: rotate(45deg);
5682
  }
5683
  /* @endgroup Misc */
5684
 
css/fl-builder.min.css CHANGED
@@ -1 +1 @@
1
- #wpadminbar,html{transition-duration:.35s}.fl-builder-badge,.fl-builder-bar-title span{vertical-align:middle}.fl-theme-builder-preview-select-title i:before,body .fl-theme-builder-preview-select .fa-caret-down i:before,body .fl-theme-builder-preview-select-item-title i:before{content:"\f078"}html{transition-property:margin}html.fl-builder-is-showing-toolbar{margin-top:46px!important}.fl-builder-edit body{position:static!important}.fl-builder-edit:after,.fl-builder-edit:before{z-index:0!important}.fl-builder-edit .fl-builder-content{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}.fl-builder-bar,.fl-builder-button{-webkit-user-select:none;-moz-user-select:none;-webkit-touch-callout:none}#wpadminbar{transition-property:transform,opacity;transform-origin:bottom;transform-style:preserve-3d;transform:rotateX(89deg) translateY(46px);opacity:0;pointer-events:none;will-change:transform}html.fl-builder-show-admin-bar{margin-top:32px}html.fl-builder-show-admin-bar #wpadminbar{transform:rotateX(0) translateY(0);pointer-events:auto;opacity:1}@media screen and (max-width:782px){html.fl-builder-show-admin-bar{margin-top:46px}}.fl-clear{clear:both}.screen-reader-text{position:absolute;left:-1000em;top:-1000em;height:1px;width:1px;overflow:hidden}.fl-builder-loading{background:url(../img/ajax-loader.svg) center center no-repeat rgba(240,240,240,.8);bottom:0;display:none;left:0;position:fixed;right:0;text-align:center;top:0;z-index:12000000}.fl-builder-settings .fl-builder-loading{background:url(../img/ajax-loader.svg) center center no-repeat rgba(255,255,255,.8);display:block;position:absolute}.fl-field-loader{color:#B3B3B3!important;font-style:italic}.fl-builder-node-loading{opacity:.35}.fl-builder-node-loading-placeholder{background:url(../img/ajax-loader.svg) center center no-repeat;height:50px}.fl-col-group-has-child-loading{display:-ms-flexbox;display:flex}.fl-col-group-has-child-loading>.fl-builder-node-loading-placeholder{width:50px}.fl-node-hidden{display:none}.fl-builder-edit .fl-node-hidden{display:block}html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-visible-desktop,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-visible-desktop-medium,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-visible-medium,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-visible-medium-mobile,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-visible-mobile{display:block!important}.fl-responsive-preview-mask{background:#F7F7F7;bottom:0;left:0;position:fixed;right:0;top:0;z-index:99999}.fl-responsive-preview{bottom:0;left:0;position:absolute;right:0;top:0;margin-top:50px;z-index:100000}#fl-builder-preview-frame,#fl-builder-preview-mask{bottom:0;height:100%;position:fixed;top:0;width:100%;right:0}.fl-builder-preview .fl-responsive-preview{margin:0!important}.fl-responsive-preview-content{background:#F5F7F9;padding:20px 20px 45px}.fl-responsive-preview-message{color:#b3b3b3;font-family:Helvetica,Arial,Verdana,sans-serif;font-size:14px;font-weight:400;padding:0 20px 20px;text-align:center}.fl-builder-button,body .fl-builder-bar .fl-builder-bar-content{display:-ms-flexbox;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif!important}.fl-responsive-preview-message i{cursor:pointer;margin-left:3px}.fl-responsive-preview .fl-builder-content{box-shadow:0 0 8px rgba(0,0,0,.2);margin-left:auto;margin-right:auto;max-width:100%}#fl-builder-preview-mask{background:url(../img/ajax-loader.svg) center center no-repeat #F7F7F7;left:0;z-index:99999}#fl-builder-preview-frame{left:50%;transform:translateX(-50%);-moz-transform:translateX(-50%);-webkit-transform:translateX(-50%);z-index:100000}.fl-builder-button{color:#676F7A!important;fill:#676F7A!important;background:#E4E7EA;-ms-flex-align:center;align-items:center;display:flex;text-decoration:none;font-size:14px!important;font-weight:500!important;line-height:1!important;height:33px;margin:0;padding:0 12px;cursor:pointer;-webkit-border-radius:3px;-webkit-appearance:none;border:2px solid transparent;border-radius:3px;letter-spacing:normal!important;white-space:nowrap;box-sizing:border-box!important;transition-property:background-color,width;transition-duration:.2s;-ms-user-select:none;user-select:none}.fl-builder-button:hover{background:#dadfe5;color:#222;border:2px solid transparent!important}.fl-builder-button:active{background:#DCDCDC}button.fl-builder-button:focus{position:static;top:auto;outline:0;background:#E4E7EA;border:2px solid #00A0D0!important}.fl-builder-bar .fl-builder-button{height:auto}.fl-builder-button-primary,body.fl-builder--layout-has-drafted-changes .fl-builder-done-button{background:#00A0D2;color:#fff!important;text-decoration:none;border:2px solid transparent!important}.fl-builder-button.fl-builder-button-primary:focus,body.fl-builder--layout-has-drafted-changes .fl-builder-button.fl-builder-done-button:focus{background:#00A0D2;border:2px solid #ffc217!important}.fl-builder-button-primary:hover,body.fl-builder--layout-has-drafted-changes .fl-builder-done-button:hover{background:#0197C6;color:#fff!important}.fl-builder-button-primary:active,body.fl-builder--layout-has-drafted-changes .fl-builder-done-button:active{background:#0484AC}.fl-builder-button-large{height:30px}.fl-builder-button-small{font-size:11px!important;line-height:1!important}.fl-builder-help-button{color:#b3b3b3;font-size:16px!important}.fl-builder-help-button i{position:relative;top:-1px}.fl-builder-help-button:hover{color:#666}.fl-builder-publish-button{line-height:45px!important}.fl-builder-content-panel-button,.fl-builder-content-panel-button:hover{fill:#00A0D2!important;font-size:30px!important;padding-bottom:4px}.fl-builder-button-silent,.fl-builder-button-silent:hover{padding:0 12px;background:0 0!important;border:2px solid transparent!important;box-shadow:none!important}.fl-builder-done-button,.fl-builder-done-button:hover{font-weight:600}.fl-field .fl-builder-button{display:inline-block;height:auto;padding:11px 12px;vertical-align:middle;box-shadow:0 2px 4px 0 rgba(0,0,0,.12)}.fl-builder-badge{background:#333;border-radius:2px;color:#fff!important;display:inline;font-size:11px!important;font-weight:400;letter-spacing:1px;margin-left:2px;padding:2px 4px}.fl-builder-badge-global{background:#ff9600;transform:translateY(0);transition-duration:.25s;transition-property:transform}.fl-builder-blocks-node-template .fl-builder-badge-global{position:absolute;right:0;top:0}.fl-builder-block:hover .fl-builder-badge-global{display:none}.fl-builder-bar{left:0;position:fixed;right:0;top:0;z-index:999999;-ms-user-select:none;user-select:none;transition-property:transform opacity;transition-duration:.35s;transform-style:preserve-3d;perspective:1100px}.fl-builder-bar.is-hidden{pointer-events:none}.fl-builder-bar.is-hidden .fl-builder-bar-content{transform:translateY(-100%) rotateX(90deg)}body .fl-builder-bar .fl-builder-bar-content{display:flex;box-sizing:border-box;background:#fff;border-bottom:2px solid #D5DADD;color:#999;font-size:14px!important;height:48px;transition-property:background-color,opacity,transform;transition-duration:.35s;pointer-events:auto}.fl-builder-draggable-is-dragging .fl-builder-content,.fl-builder-draggable-is-dragging .fl-builder-panel .fl-lightbox,.fl-builder-resizable-is-resizing .fl-builder-content,.fl-builder-resizable-is-resizing .fl-builder-panel .fl-lightbox,body .fl-builder-bar .fl-builder-bar-content.is-muted{pointer-events:none}body .fl-builder-bar .fl-builder-bar-content.is-muted>:not(.fl-builder-publish-actions){-webkit-filter:saturate(20%) blur(1px);filter:saturate(20%) blur(1px);opacity:.4}.fl-builder-bar-title{box-sizing:border-box;color:#333;display:-ms-flexbox;display:flex;-ms-flex:0 0 380px;flex:0 0 380px;max-width:380px;border-right:2px solid #D5DADD;cursor:pointer}.fl-builder-bar-title:hover{background:#fff}.fl-builder-bar-title.is-showing-menu .fl-builder-bar-title-caret>svg{transform:rotate(180deg)}.fl-builder-simple .fl-builder-bar-title{cursor:auto}.fl-builder-simple .fl-builder-bar-title:hover{cursor:auto;background:0 0}.fl-builder-bar-title-icon{box-sizing:border-box;background:0 0;-ms-flex:0 0 46px;flex:0 0 46px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:4px}.fl-builder-bar-title-icon img{max-width:100%!important;height:auto!important}.fl-builder-bar-title.fl-builder-bar-title-no-icon{padding-left:12px}.fl-builder-bar-title-area{box-sizing:border-box;-ms-flex:1 1 100%;flex:1 1 100%;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow:hidden;padding:4px}.fl-builder-layout-title,.fl-theme-builder-preview-select .fl-theme-builder-preview-select-title span{font-size:17px;font-weight:400;line-height:1.3;color:#161B20;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.fl-builder-bar-title-caret,.fl-builder-layout-pretitle,.fl-theme-builder-preview-select .fl-theme-builder-preview-select-title{font-size:12px;font-weight:500;line-height:1.3;color:#656d77;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.fl-builder-bar-title-caret i,.fl-theme-builder-preview-select-title i{color:inherit!important;font-size:14px}.fl-builder-bar-title-caret{margin-left:auto!important;-ms-flex:0 0 46px;flex:0 0 46px}.fl-theme-builder-preview-select-title i{padding:12px}.fl-theme-builder-preview-select.fl-builder-button{position:relative;border-radius:0;background:0 0;min-width:0;display:-ms-flexbox;display:flex;-ms-flex:0 0 360px;flex:0 0 360px;max-width:360px;margin:0!important;padding:4px 10px;border:none!important;border-right:2px solid #d5dadd!important;box-shadow:none}.fl-theme-builder-preview-select.fl-builder-button:hover{border:none!important;border-right:2px solid #d5dadd!important}.fl-theme-builder-preview-select .fl-theme-builder-preview-select-title{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-pack:end;justify-content:flex-end;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.fl-theme-builder-preview-select-title div{-ms-flex:1;flex:1}.fl-theme-builder-preview-select .fl-theme-builder-preview-select-title span{display:block}.fl-theme-builder-preview-select-open .fl-theme-builder-preview-select-items{position:absolute;top:calc(48px + 10px);left:10px;width:calc(100% - 20px)!important;background:#fff;border-radius:4px;border:2px solid #D5DADD;border-top:3px solid #00a0d2;box-shadow:0 15px 45px 8px rgba(0,0,0,.04);margin:0!important;padding:0;z-index:-1;font-size:16px;overflow:visible;height:auto!important;max-height:calc(100vh - 66px);min-height:300px;display:-ms-flexbox!important;display:flex!important;-ms-flex-direction:column;flex-direction:column}.fl-theme-builder-preview-select-item{padding:4px 0!important;border-bottom:none!important;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.fl-theme-builder-preview-select-item:hover{text-decoration:none;color:#111;background:0 0!important}body .fl-theme-builder-preview-select .fa-caret-down{float:none}body .fl-theme-builder-preview-select-item-title{padding:10px 15px;color:#222;font-size:14px}body .fl-theme-builder-preview-select-item-children{overflow:auto}body .fl-theme-builder-preview-select-item-child{overflow:hidden;text-overflow:ellipsis;line-height:1.1;margin:0 10px;border:2px solid transparent;border-radius:4px;padding:8px 10px 10px;font-size:14px;font-weight:400;color:#222}body .fl-theme-builder-preview-select-item-child:hover{background:#e6eaed!important}.fl-theme-builder-preview-select-item .fa-caret-down{color:#606D77}.fl-builder-bar-actions{display:-ms-flexbox;display:flex;-ms-flex-direction:row-reverse;flex-direction:row-reverse;-ms-flex:1 1 100%;flex:1 1 100%;padding:4px}.fl-builder-bar .fl-builder-button{margin:0 0 0 4px}.fl-builder-bar-actions .fl-builder-button:last-child{margin:0}.fl-builder-bar-actions:after{clear:both}.fl-builder-bar .fl-builder-content-panel-button{-ms-flex-align:baseline!important;align-items:baseline!important;padding-top:1px;font-weight:400}.fl-builder-content-panel-button svg{transition-property:transform;transition-duration:.25s;transform:rotate(0) scale(1);transform-origin:center}.fl-builder-content-panel-is-showing .fl-builder-content-panel-button svg{transform:rotate(135deg) scale(1.1) translate(.5px,-.5px)}.fl-builder--saving-indicator{cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-item-align:center;align-self:center;padding:0 16px;font-size:1em;font-style:italic;color:#676f7a;-ms-flex-align:center;align-items:center;line-height:1.2;min-width:180px;-ms-flex-pack:end;justify-content:flex-end}.fl-builder--saving-indicator:hover{color:#676f7a}.fl-builder--saving-indicator .fa-question-circle{font-size:13px;margin:3px 0 3px 8px}.fl-builder-buy-button,.fl-builder-upgrade-button{background:#F7A407;color:#fff!important;text-decoration:none}.fl-builder-buy-button i.fa-external-link-alt,.fl-builder-upgrade-button i.fa-external-link-alt{color:#FFC733;margin:0 0 0 6px}.fl-builder-buy-button:hover,.fl-builder-upgrade-button:hover{background:#EE8E0D;color:#fff!important}@media (max-width:980px){.fl-builder--main-menu-panel{width:calc(100% - 20px)!important}.fl-builder--main-menu-panel:before{right:auto;left:20px}.fl-builder-bar-title,.fl-theme-builder-preview-select{-ms-flex:1 .5 380px!important;flex:1 .5 380px!important}}@media (max-width:620px){.fl-theme-builder-preview-select.fl-builder-button{display:none}}@media (max-width:500px){.fl-builder--main-menu-panel:before,.fl-builder--panel-arrow,.fl-builder-bar-title-area,.fl-builder-panel-drag-handle,.fl-builder-panel:before{display:none}.fl-builder--main-menu-panel,.fl-builder-panel{width:auto!important;top:44px!important;left:0!important;right:0!important;bottom:0!important;border-radius:0!important;box-shadow:none!important}.fl-builder--main-menu-panel{border-left:transparent!important;border-right:transparent!important;border-bottom:transparent!important;max-height:calc(100% - 44px)!important}.fl-builder-bar-title{-ms-flex:0 0 100px!important;flex:0 0 100px!important}.fl-builder--panel-header{border-radius:0!important;cursor:default!important}.fl-builder--panel-header .fl-builder--tabs{cursor:default!important}.fl-builder-publish-actions{width:100%!important}.fl-builder-bar-actions .fl-builder-button{padding:0 8px!important}}.fl-builder--preview-actions{display:none;position:fixed;top:4px;left:4px;z-index:100008;padding:4px;-ms-flex-pack:center;justify-content:center;background:#fff;border-radius:4px}.fl-builder-preview .fl-builder--preview-actions{display:-ms-flexbox;display:flex}.fl-builder--preview-actions .device-icons{color:#555;background:#e4e4e4;border:none!important;-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;text-decoration:none;font-size:14px!important;line-height:1!important;margin:0 4px 0 0;padding:0 6px;cursor:pointer;-webkit-border-radius:3px;-webkit-appearance:none;border-radius:3px}.fl-builder--preview-actions .device-icons i{margin:0 6px}@keyframes fl-builder-ui-pin-zone-pulse{0%,100%{opacity:1;filter:alpha( opacity=1 )}50%{opacity:.5;filter:alpha( opacity=35 )}}.fl-builder-ui-pin-zone{animation:fl-builder-ui-pin-zone-pulse 2s infinite;transition:width .3s ease;background:rgba(0,160,210,.5);bottom:0;top:0;position:fixed;width:35px;z-index:100001}.fl-builder-ui-show-pin-zone-left .fl-builder-ui-pin-zone-left,.fl-builder-ui-show-pin-zone-right .fl-builder-ui-pin-zone-right{width:75px}.fl-builder-ui-pin-zone-left{left:0}.fl-builder-ui-pin-zone-right{right:0}.fl-builder-content-panel-pin-zone .fl-builder-content-panel-button{display:-ms-flexbox!important;display:flex!important;background:rgba(0,160,210,.5)!important;padding:2px 4px;width:80px;animation:fl-builder-ui-pin-zone-pulse 2s infinite}.fl-builder-content-panel-pin-zone .fl-builder-content-panel-button svg{display:none}.fl-builder-content-panel-pin-zone-hover .fl-builder-content-panel-button{width:120px}.fl-builder-content-panel-pin-zone-hover .fl-builder-content-panel-button svg{display:none!important;width:100%;transform:none!important;fill:#00A0D2!important;border-radius:3px}.fl-builder-ui-is-pinned .fl-builder-content-panel-button,.fl-builder-ui-pinned-container .fl-lightbox-controls{display:none}.fl-builder-content-panel-pin-zone .fl-builder-done-button{-webkit-filter:grayscale(100%);filter:grayscale(100%)}.fl-builder-panel.fl-builder-ui-pinned{top:48px!important;bottom:0!important;height:auto!important;border-radius:0;border:none;box-shadow:none;animation-duration:0s;-moz-animation-duration:0s;-webkit-animation-duration:0s;-o-animation-duration:0s;z-index:11}.fl-builder-panel.fl-builder-ui-pinned-right{left:auto!important;right:0;border-left:2px solid #d5dadd}.fl-builder-panel.fl-builder-ui-pinned-left{left:0;right:auto;border-right:2px solid #d5dadd}.fl-builder-panel.fl-builder-ui-pinned .fl-builder--panel-header{border-radius:0!important}.fl-builder-ui-pinned-container .fl-lightbox-wrap{position:absolute;z-index:11}.fl-builder-ui-pinned-container .fl-lightbox{position:absolute;top:0;bottom:0;left:0;right:0;width:auto!important;height:auto;border-radius:0;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none;animation-duration:0s;-moz-animation-duration:0s;-webkit-animation-duration:0s;-o-animation-duration:0s}.fl-builder-ui-pinned-container .fl-lightbox-header-wrap{border-radius:0}.fl-builder-ui-pinned-container .fl-lightbox.ui-draggable .fl-lightbox-header{cursor:auto}.fl-builder-ui-pinned-container .fl-lightbox-header h1{padding:12px 20px 10px!important}.fl-builder-ui-pinned-content-transform{transform:scale(1);transform-origin:center top 0}.fl-builder-ui-pinned-collapse{cursor:pointer;display:none;position:absolute!important;bottom:2px;padding:5px;border:2px solid transparent;background:0 0;width:36px;height:36px;border-radius:4px;fill:#778794;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:center;justify-content:center}.fl-builder-ui-pinned-collapse:focus,.fl-builder-ui-pinned-collapse:hover{top:auto!important;background:0 0;border:2px solid transparent;outline:0;fill:#00A0D2}.fl-builder-ui-pinned-collapse:focus{background:#E4E7EA}.fl-builder-ui-pinned-collapse>*{margin:auto;line-height:1}.fl-builder-ui-pinned-collapse svg g{fill:inherit}.fl-builder-ui-is-pinned-right .fl-builder-ui-pinned-right-collapse{display:-ms-flexbox;display:flex;left:-40px}.fl-builder-ui-is-pinned-left .fl-builder-ui-pinned-left-collapse{display:-ms-flexbox;display:flex;right:-40px}.fl-builder-ui-pinned-collapse i[data-toggle=show],.fl-builder-ui-pinned-is-collapsed i[data-toggle=hide]{display:none}.fl-builder-ui-pinned-is-collapsed i[data-toggle=show]{display:block}.fl-builder--panel-no-settings,.fl-builder-simple-pinned .fl-builder--content-library-panel .fl-builder--panel-content,.fl-builder-simple-pinned .fl-builder--content-library-panel .fl-builder--panel-controls,.fl-builder-simple-pinned .fl-builder--content-library-panel .fl-builder--tab-wrap,.fl-builder-ui-pinned-is-collapsed .fl-builder--panel-header{display:none}.fl-builder-ui-is-pinned-left [data-toggle=hide],.fl-builder-ui-is-pinned-right [data-toggle=show]{transform:rotateY(180deg)}.fl-builder-ui-pinned-is-collapsed .fl-lightbox{box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none}.fl-builder-simple-pinned .fl-builder--content-library-panel .fl-builder--panel-header{background:0 0;border:none;z-index:10}.fl-builder-simple-pinned .fl-builder--content-library-panel .fl-lightbox-wrap{top:0}.fl-builder-simple-pinned .fl-builder--content-library-panel .fl-lightbox-header h1{padding:14px 28px 15px!important}.fl-builder-simple-pinned .fl-builder--panel-no-settings{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:0;left:0;right:0;bottom:0}@keyframes fl-builder-show-panel{from{transform:scale(.8)}to{transform:scale(1)}}.fl-builder--search-results-panel,.fl-builder-panel{box-sizing:border-box;position:fixed!important;right:20px;top:calc(48px + 10px);width:380px;bottom:20px;background:#F5F7F9;color:#676F7A;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;border-radius:4px;box-shadow:0 8px 40px 4px rgba(0,0,0,.3);z-index:10000007;will-change:transform;display:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fl-builder-panel{transform-origin:top right;animation-name:fl-builder-show-panel;animation-duration:.15s;animation-fill-mode:both}.fl-builder--search-results-panel{position:absolute;right:0;top:93px;left:0;bottom:0;width:auto!important;border:none;border-radius:0;box-shadow:none;min-height:100px;max-height:calc(100vh - 54px);overflow:auto;z-index:1}.fl-builder-content-panel-is-showing .fl-builder-panel,.fl-builder-search-results-panel-is-showing .fl-builder--search-results-panel{display:block}.fl-builder-panel .fl-lightbox .fl-builder-panel-drag-handle,.fl-builder-ui-is-pinned .fl-builder--panel-arrow,.fl-lightbox-width-full .fl-builder-panel-drag-handle,body.fl-builder-draggable-is-dragging .fl-builder--panel-arrow{display:none}.fl-builder-content-panel-is-showing .fl-builder-panel.fl-builder--current-view-templates{width:520px}.fl-builder--search-results-panel .fl-builder--no-results{text-align:center;padding:50px 20px}.fl-builder--panel-arrow{position:absolute;top:-13px;right:10px}.fl-builder--panel-arrow polygon{fill:#00a0d2}.fl-builder--panel-header{background:#fff;border-top:3px solid #00a0d2;border-bottom:2px solid #e6eaed;border-top-right-radius:4px;border-top-left-radius:4px}.fl-builder-ui-is-pinned .fl-builder--panel-header{border-top-color:transparent}.fl-builder-panel-drag-handle{position:absolute;top:7px;left:10px;fill:#ccd4da;width:6px}.fl-builder-ui-is-pinned-left .fl-builder-panel-drag-handle{left:auto;right:10px}.fl-builder--panel-header .fl-builder--panel-controls{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;position:relative}.fl-builder--panel-header .fl-builder--panel-controls .fl-builder-content-group-select{-ms-flex:1 1;flex:1 1}.fl-builder--panel-header .fl-builder--panel-controls .fl-builder-panel-search{-ms-flex:0 0;flex:0 0;padding:0 10px 6px 0;margin-left:-4px}.fl-builder--panel-controls .fl-builder-panel-search button{width:38px;background:0 0!important;border:2px solid transparent!important;font-size:inherit;height:38px;padding:0}.fl-builder--panel-controls .fl-builder-panel-search button:active,.fl-builder--panel-controls .fl-builder-panel-search button:focus{top:0;outline:0}.fl-builder-panel-search button svg{height:auto;width:20px}.fl-builder-panel-search button.fl-builder-dismiss-panel-search svg{width:16px}.fl-builder-panel-search button svg .filled-shape{fill:#000}.fl-builder--panel-controls .fl-builder-panel-search button:active svg .filled-shape,.fl-builder--panel-controls .fl-builder-panel-search button:focus svg .filled-shape{fill:#00A0D2}.fl-builder-panel-search .fl-builder-panel-search-input{display:none;position:absolute;top:0;left:0;right:0;bottom:0;background:#fff}.fl-builder-panel-search.is-showing-input .fl-builder-panel-search-input{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;padding:0 10px 6px}.fl-builder-panel-search-input input{-ms-flex:1 1 100%;flex:1 1 100%;border:2px solid #e6eaed;background:#fff;border-radius:4px;margin-right:4px;padding:10px;color:#333}.fl-builder-panel-search-input input:focus{border-color:#0197C6;outline:0}.fl-builder-panel-search-input button{-ms-flex:0 0 38px;flex:0 0 38px}.fl-builder-panel-content-wrap{bottom:0;height:auto;left:0;overflow:hidden;position:absolute;right:0;top:43px}.fl-builder-panel-content{padding-bottom:60px}.fl-builder-blocks-section{border-top:2px solid #e6eaed}.fl-builder--panel-view .fl-builder-blocks-section:first-child{border-top:none}.fl-builder-blocks-group:first-child{padding:20px 0 0}.fl-builder-blocks-group .fl-builder-blocks-section-group-name{display:block;padding:0 30px 15px;color:#000;font-size:20px;font-weight:600;line-height:1.4}.fl-builder-blocks-section .fl-builder-block,.fl-builder-blocks-section .fl-builder-blocks-section-title{display:block;line-height:1.1;padding:15px 20px}.fl-builder--template-collection-section-name,.fl-builder-blocks-section .fl-builder-blocks-section-title{display:inline-block;font-weight:700;font-size:12px;line-height:1.2;text-transform:uppercase;color:#333;padding:4px 10px 4px 15px;margin:0!important;background:#e6eaed;border-bottom-right-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:top}.fl-builder-blocks-section .fl-builder-blocks-section-title i{color:#bfbfbf;float:right}.fl-builder-blocks-section-content{overflow:auto;padding:10px 10px 20px}.fl-builder-blocks-section-content:after{float:none;clear:both}.fl-builder-blocks-section-content.fl-builder-modules,.fl-builder-blocks-section-content.fl-builder-rows,.fl-builder-blocks-section-content.fl-builder-widgets{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.fl-builder-blocks-section-content .fl-builder-block-module,.fl-builder-blocks-section-content .fl-builder-block-row{-ms-flex:1 1 50%;flex:1 1 50%;width:50%;box-sizing:border-box}.fl-builder--search-results-panel .fl-builder-blocks-section-content .fl-builder-block-module{-ms-flex:1 1 100%;flex:1 1 100%;width:100%}.fl-builder-blocks-section.fl-active .fl-builder-blocks-section-content{display:block}.fl-builder-blocks-section-content .fl-builder-block{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:4px;font-size:14px;line-height:1.1;font-weight:500;color:#727272}.fl-builder-block{position:relative;height:47px}.fl-builder-block.fl-builder-block-col-group{height:84px}.fl-builder-block.fl-builder-block-has-thumbnail{height:auto!important;padding:10px!important}.fl-builder-block.fl-builder-block-has-thumbnail:hover{padding:0!important}.fl-builder-block.fl-builder-block-has-thumbnail .fl-builder-block-content{position:relative!important}.fl-builder-block.fl-builder-block-has-thumbnail:hover .fl-builder-block-content{padding:10px!important}.fl-builder-block.fl-builder-block-has-thumbnail .fl-builder-block-details{margin:0 10px 4px!important}.fl-builder-block:hover{overflow:visible;z-index:1}.fl-builder-block:hover .fl-builder-block-content{display:block;box-sizing:border-box;position:absolute;top:0;left:0;width:100%;padding:15px 20px;border-radius:4px;background:#fff;box-shadow:0 2px 4px 0 rgba(0,0,0,.12);text-decoration:none;color:#111;cursor:move;overflow:hidden}.fl-builder-blocks-node-template .fl-builder-block,.fl-builder-blocks-section-content .fl-builder-block .fl-builder-block-details{position:relative}.fl-builder-block-module:hover .fl-builder-block-content{width:auto;min-width:100%}.fl-builder-block .fl-builder-block-content .fl-builder-block-visual{display:block;margin-bottom:7px}.fl-builder-block-drag-helper .fl-builder-block-content .fl-builder-block-visual{display:none!important}.fl-builder-block .fl-builder-block-content .fl-builder-block-visual.fl-cols-visual{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;height:30px}.fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col{-ms-flex:1 100%;flex:1 100%;background:#464a4c;height:30px;margin:0 2px;border-radius:2px}.fl-builder-block:hover .fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col{background:#000}.fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col:first-child{margin-left:0!important}.fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col:last-child{margin-right:0!important}.fl-cols-visual.left-right-sidebar .fl-cols-visual-col:first-child,.fl-cols-visual.left-right-sidebar .fl-cols-visual-col:last-child,.fl-cols-visual.left-sidebar .fl-cols-visual-col:first-child,.fl-cols-visual.right-sidebar .fl-cols-visual-col:last-child{-ms-flex-preferred-size:60px;flex-basis:60px}.fl-builder-block-saved-column.fl-builder-block-global .fl-builder-block-title,.fl-builder-block-saved-column:hover .fl-builder-block-title,.fl-builder-block-saved-module.fl-builder-block-global .fl-builder-block-title,.fl-builder-block-saved-module:hover .fl-builder-block-title,.fl-builder-block-saved-row.fl-builder-block-global .fl-builder-block-title,.fl-builder-block-saved-row:hover .fl-builder-block-title{margin-right:70px}.fl-builder-block-module:nth-child(even):hover .fl-builder-block-content{left:auto;right:0}.fl-builder-block-thumbnail{border-radius:4px;background-size:contain;background-repeat:no-repeat;background-position:center;background-color:rgba(0,0,0,.06);margin-bottom:10px;transform-origin:bottom;transition-property:transform,box-shadow;transition-duration:.15s}.fl-builder-block:hover .fl-builder-block-thumbnail{transform:scale(1.05);box-shadow:0 20px 40px rgba(0,0,0,.08)}.fl-builder-block .fl-builder-block-icon{margin-right:7px;fill:#000;display:inline-block;width:20px;height:20px;vertical-align:middle}.fl-builder-block-thumbnail:before{content:"";display:block;padding-top:50%}.fl-builder-block-thumbnail img{max-width:100%;max-height:160px;margin:0;-o-object-fit:cover;object-fit:cover}.fl-builder-blocks-section-content .fl-builder-block{box-shadow:0 0 0 transparent;transition-property:box-shadow;transition-duration:.15s}.fl-builder-blocks-section-content .fl-builder-block i,.fl-user-template-actions i{color:#000;margin-right:10px}.fl-builder-blocks-separator{background:#f1f1f1;height:6px}.fl-builder-block:hover .fl-builder-badge{background:#2ea2cc}.ui-sortable-helper .fl-builder-badge{display:none!important}.fl-builder-modules-cta a{color:#999!important;display:block!important;font-size:12px!important;font-style:italic!important;padding:15px 20px!important;line-height:16px!important}.fl-builder-modules-cta a:hover{background:#e5e5e5!important;color:#666!important;text-decoration:none!important}.fl-builder-modules-cta a:focus{text-decoration:none!important}.fl-builder-modules-cta .fa{float:right!important;font-size:14px!important;margin:3px 0 0 9px!important}.fl-builder--panel-message{text-align:center;padding:40px 20px;font-size:16px}.fl-builder--panel-message .fl-builder-button{display:inline-block;padding:10px}.fl-builder--panel-cta{padding:20px 30px;font-size:16px;text-align:center}.fl-builder--panel-cta a{color:inherit;text-decoration:none}.fl-builder--panel-cta a:hover{text-decoration:none}.fl-builder-block-template-image{margin:5px 0 10px;max-width:100%;border:1px solid #dfdfdf}.fl-builder-block .fl-builder-block-title{overflow:hidden;text-overflow:ellipsis;vertical-align:middle;line-height:1.3}.ui-sortable-helper .fl-builder-block-template-image{display:none!important}@keyframes fl-builder-template-item-enter{from{transform:translateY(100px) scale(.3);opacity:0}to{transform:scale(1);opacity:1}}.fl-builder--template-collection{clear:both;padding:10px 0}.fl-builder--template-collection-section-content{padding:0 10px}.fl-builder--template-collection-item{box-sizing:border-box;width:50%;float:left;padding:10px;cursor:pointer;font-size:13px;transform-origin:center;opacity:1}.fl-builder--template-thumbnail{background-size:cover;background-clip:content-box;background-position:center top;background-color:#fff;border:2px solid transparent;transform-origin:bottom;transition-property:transform,box-shadow;transition-duration:.15s}.fl-builder--template-collection-item[data-id="0"] .fl-builder--template-thumbnail,.fl-user-template .fl-builder--template-thumbnail{border-color:#e4e7ea}.fl-builder--template-thumbnail:before{display:block;content:"";padding-top:120%}.fl-builder--template-thumbnail:hover{transform:scale(1.05);box-shadow:0 20px 40px rgba(0,0,0,.08)}.fl-builder--template-name{text-align:center;padding:4px 0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.fl-builder--template-collection-section{padding-bottom:10px;border-bottom:1px solid #dfdfdf}.fl-builder--template-collection-section:after,.fl-builder--template-collection-section:before{content:"";display:block;clear:both}.fl-builder--template-collection-section-name{padding:15px 10px 10px}span.fl-builder-block-no-node-templates{display:block;padding:15px 20px;text-align:center}span.fl-builder-block-no-node-templates:hover{cursor:default}.fl-builder-blocks-section-content .fl-builder-node-template-actions{bottom:0;cursor:default;display:none;position:absolute;right:0;top:0}.fl-builder-blocks-section-content .fl-builder-node-template-delete,.fl-builder-blocks-section-content .fl-builder-node-template-edit{display:inline;cursor:pointer;margin:0;padding:15px 10px;text-align:center;width:30px}.fl-builder-block-details .fl-builder-node-template-delete,.fl-builder-block-details .fl-builder-node-template-edit{padding-top:0!important}.fl-builder-blocks-section-content .fl-builder-node-template-delete i,.fl-builder-blocks-section-content .fl-builder-node-template-edit i{margin:0}.fl-builder-blocks-section-content .fl-builder-node-template-delete:hover i,.fl-builder-blocks-section-content .fl-builder-node-template-edit:hover i{color:#444}.fl-builder-blocks-node-template .fl-builder-block:hover .fl-builder-node-template-actions{display:block}.ui-sortable-helper .fl-builder-node-template-delete,.ui-sortable-helper .fl-builder-node-template-edit{display:none!important}.fl-builder--tabs{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;position:relative;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:center;align-items:center}.fl-builder-panel .fl-builder--panel-header{cursor:move;position:absolute;top:0;left:0;right:0;z-index:9}.fl-builder-panel .fl-builder--tabs{-ms-flex-pack:distribute;justify-content:space-around;padding:0 24px;min-height:46px;cursor:pointer}.fl-builder--tab-wrap{-ms-flex:1 1 100%;flex:1 1 100%;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:stretch;align-items:stretch;-ms-flex-pack:justify;justify-content:space-between}.fl-builder--tabs button,.fl-builder--tabs button:active,.fl-builder--tabs button:focus,.fl-builder--tabs button:hover{-ms-flex:1 1 100%;flex:1 1 100%;display:inline-block;text-decoration:none;color:inherit;text-align:center;letter-spacing:normal!important;padding:5px;cursor:pointer;font-size:14px!important;font-weight:600!important;line-height:1.4!important;background:0 0!important;outline:0!important;border:2px solid transparent;border-radius:4px;margin:7px 0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif!important;top:0;transition-property:background,color;transition-duration:.25s}.fl-builder--current-view-name,.fl-builder-drop-zone{text-align:left;text-overflow:ellipsis;white-space:nowrap}.fl-builder--tabs button:focus{background:#e6eaed!important}.fl-builder--tabs button.is-showing{color:#0086b0}.fl-builder--panel-view{display:none;overflow:hidden}.fl-builder--panel-view.is-showing{display:block}.fl-builder--content-library-panel .fl-builder--panel-view.is-showing{position:absolute;top:96px;bottom:0;left:0;right:0;width:auto;height:auto}.fl-builder--content-library-panel.single-view .fl-builder--panel-view.is-showing{top:52px}.fl-builder--content-library-panel.ui-draggable-dragging{height:500px!important}.fl-builder--content-library-panel .fl-builder-drop-zone{display:none!important}.fl-builder--panel-header .fl-builder--tabs{cursor:move}.fl-builder--category-select{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;position:relative}.fl-builder--selector-display{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;position:relative;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;color:#161B20;background:url(../img/svg/select-arrow-down-alt2.svg) center right 10px no-repeat #fff!important;cursor:pointer;font-size:13px;font-weight:700;line-height:16px;border-radius:4px}.fl-builder--selector-display-label{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;font-size:inherit;line-height:inherit;width:100%;padding:0!important;color:#6D6D6D;background:0 0;border:2px solid #e4e7ea;border-radius:4px;font-family:inherit}.fl-builder--selector-display-label:active,.fl-builder--selector-display-label:hover{top:0;color:inherit;background:0 0;border:2px solid #e4e7ea;border-radius:4px}.fl-builder--selector-display-label:focus{top:0;color:inherit;background:0 0;border:2px solid #00A0D2;outline:0}.fl-builder--group-label{color:inherit;-ms-flex:0 0 0%;flex:0 0 0%;padding:9px 12px 9px 10px;background:#e6eaed;border-top-left-radius:2px;border-bottom-left-radius:2px}.fl-builder--current-view-name{-ms-flex:1 1 100%;flex:1 1 100%;color:inherit;overflow:hidden;font-weight:600;padding:9px 10px}.fl-builder--selector-menu{display:none;color:#293138;position:absolute;top:46px;left:0;width:100%;background:#fff;border-radius:4px;box-shadow:0 0 20px 2px rgba(0,0,0,.2);overflow:visible}.fl-builder--selector-menu:before{bottom:100%;right:8px;content:" ";height:0;width:0;position:absolute;pointer-events:none;border:solid;border-color:rgba(255,255,255,0);border-bottom-color:#fff;border-width:10px;margin-left:-10px}.fl-builder--category-select.is-showing .fl-builder--selector-menu{display:-ms-flexbox;display:flex;max-height:calc(100vh - 150px)}.fl-builder--category-select.is-showing .fl-builder--selector-menu .fl-builder--menu{margin:10px 0;-ms-flex:1 100%;flex:1 100%;overflow:auto}button.fl-builder-button.fl-builder-bar-title-caret{margin:4px}button.fl-builder-button.fl-builder-bar-title-caret:focus{background-color:#e6eaed!important;border-color:transparent!important}.fl-builder--category-select.is-showing .fl-builder-bar-title-caret i{transform:rotate(180deg)}.fl-builder--menu{margin-bottom:2px}.fl-builder--menu>a,.fl-builder--menu>button,.fl-builder--menu>span{display:block;padding:8px 10px 10px;border-radius:4px;color:inherit;text-decoration:none;background:0 0!important;border:2px solid transparent!important;font-weight:400;font-family:inherit}.fl-builder--menu>a:active,.fl-builder--menu>a:focus,.fl-builder--menu>a:hover,.fl-builder--menu>button:active,.fl-builder--menu>button:focus,.fl-builder--menu>button:hover{background:#e6eaed!important;border:2px solid transparent!important;top:0}.fl-builder-block-drag-helper,.fl-builder-block.ui-draggable-dragging,.fl-builder-drop-zone,.fl-builder-empty{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.fl-builder--menu>a:focus,.fl-builder--menu>button:focus{outline:0;color:inherit;text-decoration:none}.fl-builder--menu .fl-inset{padding-left:35px;font-size:14px;line-height:1.25}.fl-builder--menu a.fl-template-collection{color:#161B20}.fl-builder--menu>:after{clear:both}.fl-builder--menu * .fl-builder--menu-item-accessory{float:right;color:#000;text-transform:uppercase;text-align:center;min-width:20px;letter-spacing:2px}.fl-builder--menu * .fl-builder--menu-item-accessory i{font-size:1em;margin-top:2px}.fl-builder--menu .fl-builder-video-wrap iframe{display:block;margin:4px 0;width:100%}.fl-builder-publish-actions{display:-ms-flexbox;display:flex;box-sizing:border-box;position:absolute;top:0;right:0;width:380px;max-width:100%;height:46px;padding:4px;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:end;justify-content:flex-end;opacity:1;pointer-events:auto;transform:scaleX(1) translateX(0);transform-origin:right;transition-property:transform,opacity;transition-duration:.15s}.fl-builder-publish-actions.is-hidden{transform:scaleX(.23) translateX(68px);opacity:0;pointer-events:none}.fl-builder-bar .fl-builder-button-group{display:-ms-flexbox;display:flex;-ms-flex-preferred-size:100%;flex-basis:100%}.fl-builder-bar .fl-builder-button-group>.fl-builder-button{border-radius:0;margin-left:0;-ms-flex-preferred-size:100%;flex-basis:100%;text-align:center;-ms-flex-pack:distribute;justify-content:space-around;box-shadow:none}.fl-builder-bar .fl-builder-button-group>.fl-builder-button:first-child{margin-left:0;border-top-left-radius:3px;border-bottom-left-radius:3px}.fl-builder-bar .fl-builder-button-group>.fl-builder-button:last-child{border-top-right-radius:3px;border-bottom-right-radius:3px}.fl-builder-publish-actions-click-away-mask{display:none;position:fixed;top:0;left:0;right:0;height:100vh;background:0 0}.fl-builder-dragging .fl-builder-content:not(.fl-builder-empty){padding:16px 0}.fl-builder-empty{display:none;border:2px dashed #969696;border-radius:8px;color:#909090;font-size:20px;font-weight:700;margin:10px;padding:250px 20px;position:relative;text-align:center;text-transform:uppercase}.fl-builder-edit .fl-builder-empty{display:block}.fl-builder-block-drag-helper,.fl-builder-block.ui-draggable-dragging{background:rgba(255,255,255,.95)!important;border:2px solid #000;border-radius:4px;box-shadow:0 0 8px rgba(0,0,0,.2);-moz-box-shadow:0 0 8px rgba(0,0,0,.2);-webkit-box-shadow:0 0 8px rgba(0,0,0,.2);color:#333!important;font-size:13px!important;height:47px!important;line-height:40px!important;overflow:hidden;padding:0 20px;position:fixed!important;text-overflow:ellipsis;white-space:nowrap;width:180px!important;z-index:100010!important;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-line-pack:center;align-content:center;-ms-flex-pack:start;justify-content:flex-start}.fl-builder-block.fl-builder-block-drag-helper:hover{padding:0;box-shadow:none}.fl-builder-block-drag-helper:hover .fl-builder-block-content{position:static;padding:0 20px}.fl-col-has-highlight-guide .fl-col-content,.fl-col-highlight,.fl-row-highlight .fl-col-group{position:relative}.fl-builder-block-saved-column.fl-builder-block-drag-helper:hover .fl-builder-block-content,.fl-builder-block-saved-module.fl-builder-block-drag-helper:hover .fl-builder-block-content,.fl-builder-block-saved-row.fl-builder-block-drag-helper:hover .fl-builder-block-content{padding:14px 20px}.fl-builder-block-drag-helper .fl-builder-block-icon{fill:#000;margin-top:-10px}.fl-builder-drop-zone{animation:fl-builder-drop-zone-pulse 2s infinite;background:#00A2D7;border-radius:4px;color:#fff!important;display:block;font-weight:400;font-size:12px;letter-spacing:1px;line-height:14px;margin:10px;padding:6px 8px 5px;position:relative;text-shadow:none;text-transform:none;overflow:hidden;z-index:10}@keyframes fl-builder-drop-zone-pulse{0%,100%{background-color:#00A2D7}50%{background-color:#79DEFF}}.fl-builder-drop-zone-global{animation:fl-builder-drop-zone-global-pulse 2s infinite;background:#ff9600}.fl-field,.fl-lightbox{animation-duration:.25s}@keyframes fl-builder-drop-zone-global-pulse{0%,100%{background-color:#FFBC5C}50%{background-color:#ff9600}}.fl-builder-content>.fl-builder-drop-zone{margin:10px 20px}.fl-row-content>.fl-builder-drop-zone{margin:3px 7px}.fl-col-has-cols>.fl-col-content>.fl-builder-drop-zone{margin:3px 10px}.fl-sortable-disabled>.fl-builder-drop-zone{display:none!important}.fl-col-group-equal-height.fl-col-group-align-center .fl-col-content>.fl-builder-drop-zone{width:100%}.fl-row-highlight{padding:16px 0}.fl-row-highlight .fl-row-content{border:2px dashed rgba(203,205,206,.5);padding:8px;border-radius:6px}.fl-row-highlight.fl-node-global .fl-row-content{border-color:#ff9600}.fl-col-highlight{padding:8px}.fl-col-highlight .fl-col-content{border-style:dashed!important;border-color:#00a0d2!important;border-radius:4px;min-height:100px;overflow-x:hidden;width:100%;border-width:2px!important}.fl-col-has-cols.fl-col-highlight>.fl-col-content{padding:8px}.fl-col-highlight.fl-node-global .fl-col-content{border-color:#ff9600!important}.fl-builder-simple .fl-col-highlight .fl-col-content{border:none!important}.fl-col-highlight-guide{background:rgba(0,160,210,.05);border:2px solid #00A0D2;border-radius:4px;bottom:4px;left:4px;position:absolute;right:4px;top:4px;z-index:1}.fl-node-global .fl-col-highlight-guide{border-color:#ff9600!important;background-color:rgba(255,150,0,.06)!important}.fl-col-has-highlight-guide .fl-block-overlay{background:0 0;border-color:transparent}.fl-col-has-highlight-guide .fl-block-col-resize{display:none}.fl-col-has-highlight-guide .fl-col-highlight .fl-col-content{border-color:transparent!important}.fl-col-drop-target{bottom:8px;display:none;left:-9px;position:absolute;top:8px;width:18px;z-index:1}.fl-col-highlight .fl-col-drop-target{display:block}.fl-col-drop-target-last{left:auto;right:-9px}.fl-col-drop-target .fl-builder-drop-zone{bottom:0;left:2px;margin:0;padding:0;position:absolute;right:2px;top:0}.fl-col-group-drop-target{display:none;left:8px;height:18px;position:absolute;right:8px;top:-9px;z-index:1}.fl-row-highlight .fl-col-group-drop-target{display:block}.fl-col-group-drop-target-last{top:auto;bottom:-9px}.fl-col-group-drop-target .fl-builder-drop-zone{bottom:2px;left:0;margin:0;padding:0;position:absolute;right:0;top:2px}.fl-row-content>.fl-col-group-drop-target{position:static}.fl-row-content>.fl-col-group-drop-target .fl-builder-drop-zone{height:18px;position:static}.fl-row-drop-target{display:none;left:0;height:24px;margin-top:-28px;position:absolute;right:0;z-index:1}.fl-row-highlight .fl-row-drop-target{display:block}.fl-row-drop-target-last{margin-top:4px}.fl-row .fl-row-drop-target .fl-builder-drop-zone{bottom:0;left:4px;margin:0;position:absolute;right:4px;top:0}.fl-builder-content>.fl-row-drop-target{margin:0;position:static}.fl-builder-dragging .fl-builder-content.fl-builder-empty>.fl-row-drop-target{bottom:10px;display:block;height:auto;left:0;position:absolute;right:0;top:10px}.fl-builder-content .fl-row-drop-target .fl-builder-drop-zone{margin-bottom:0;margin-top:0}.fl-col-group:focus,.fl-col:focus,.fl-module:focus,.fl-row:focus{outline:0}.fl-sortable-proxy{display:none}.fl-block-overlay,.fl-block-overlay *{text-shadow:none;-webkit-touch-callout:none}.fl-block-overlay-active{position:relative}.fl-block-overlay-actions{background:#00A0D2;float:left;height:30px;margin:-1px -1px 0;padding:0 4px;text-shadow:none;border-bottom-right-radius:5px;border-top-left-radius:3px}.fl-row-overlay-header-bottom .fl-block-overlay-actions{border-radius:0 5px 0 3px}.fl-builder-col-resizing .fl-block-overlay-actions,.fl-builder-row-resizing .fl-block-overlay-actions{overflow:hidden}.fl-block-overlay-actions>span{display:block;float:left}.fl-block-overlay-actions i{color:#fff!important;cursor:pointer;display:block!important;float:left;font-size:16px!important;height:28px!important;line-height:28px!important;opacity:.8;filter:alpha(opacity=80);text-align:center;width:32px!important}.fl-block-overlay-actions i:hover{opacity:1;filter:alpha(opacity=100)}.fl-block-overlay-actions>i:first-child{padding-left:4px}.fl-block-overlay-actions>i:last-child{padding-right:2px}.fl-block-overlay-actions .fl-block-move{cursor:move}.fl-block-has-rules{color:#00A0D2!important;cursor:pointer;padding:7px;position:absolute;right:0;top:0}.fl-block-overlay-title,.fl-builder-has-submenu>ul.fl-builder-submenu li a{color:#fff!important;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.fl-block-overlay-title{float:left;font-size:14px;height:30px;line-height:29px;margin-right:2px;padding:0 12px 0 8px}.fl-col-overlay,.fl-module-overlay,.fl-row-overlay{background:rgba(190,239,255,0);color:#fff}.fl-row-overlay{border:2px solid #00A0D2;border-radius:4px;bottom:0;box-sizing:border-box!important;-moz-box-sizing:border-box!important;-webkit-box-sizing:border-box!important;left:0;position:absolute;top:-33px;right:0;z-index:100006}.fl-row-overlay.fl-row-menu-active,.fl-row-overlay.fl-row-menu-active.fl-block-overlay.fl-block-overlay-global{z-index:100007}.fl-row-full-width .fl-row-overlay{left:2px;right:2px;bottom:2px}.fl-row-overlay-header-bottom{bottom:-32px!important;top:0}.fl-row-overlay-header-bottom .fl-block-overlay-header{position:absolute;bottom:0}.fl-block-overlay-active .fl-row-content-wrap{position:relative}.fl-block-overlay-active .fl-row-content{position:relative;z-index:100007!important}.fl-builder-row-resizing .fl-col.fl-block-overlay-active,.fl-builder-row-resizing .fl-module.fl-block-overlay-active{position:static}.fl-col-overlay{border:2px solid #00A0D2;border-radius:4px;bottom:8px;cursor:pointer;left:8px;position:absolute;right:8px;top:8px;z-index:100008}.fl-module-overlay{border:2px solid #00A0D2;border-radius:4px;bottom:4px;cursor:pointer;left:4px;min-height:32px;position:absolute;right:4px;top:4px;z-index:100007}.fl-builder-global-templates-locked .fl-block-overlay-global.fl-module-overlay{cursor:default}.fl-module-adjust-height{padding-bottom:15px;padding-top:15px}.fl-block-overlay-global{background:rgba(255,150,0,0);border:2px solid #F7A407;border-radius:4px}.fl-block-overlay-global .fl-block-overlay-actions{background:#F7A407}.fl-block-overlay-title-global{background:#fff;color:#ff9600!important;font-size:11px;letter-spacing:1px;margin-left:4px;padding:2px 4px;vertical-align:top}.fl-block-overlay-global.fl-row-overlay{background:rgba(255,150,0,0);cursor:pointer;z-index:100007}.fl-builder-global-templates-locked .fl-block-overlay-global.fl-row-overlay{cursor:default}.fl-builder-row-template .fl-block-overlay-global.fl-row-overlay{background:rgba(255,150,0,0);cursor:default;z-index:100006}.fl-block-overlay-global.fl-row-overlay .fl-block-col-resize{display:none}.fl-block-overlay-muted .fl-row-overlay{background:rgba(85,93,102,0);border:2px solid #555D66}.fl-block-overlay-muted .fl-row-overlay .fl-block-overlay-actions{background:#555D66}.fl-block-overlay-muted .fl-row-overlay .fl-block-has-rules{color:#555D66!important}.fl-block-overlay-muted .fl-row-overlay .fl-block-col-resize{display:none}.fl-node-disabled .fl-row-content-wrap,.fl-node-disabled>.fl-col-content{opacity:.3}.fl-block-col-resize{bottom:0!important;position:absolute;top:0!important;width:6px}.fl-block-col-resize-e{cursor:ew-resize;left:auto!important;right:-2px!important}.fl-block-col-resize-w{cursor:ew-resize;left:-7px!important}.fl-block-col-resize-handle-wrap{margin:-4px 0 0 -5px;padding:0 5px;position:absolute;top:50%!important}.fl-block-col-resize-e .fl-block-col-resize-handle-wrap{margin-left:-6px}.fl-block-col-resize-handle{background:#fff;border:2px solid #00A0D2;border-radius:50%;height:12px;width:12px}.fl-node-global .fl-block-col-resize-handle{border-color:#ff9600}.fl-block-col-resize-feedback{color:#333!important;display:none;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:11px!important;position:absolute}.fl-block-col-resize-feedback-left,.fl-block-col-resize-feedback-right{background:#fff;border:1px solid #3ba0ff;padding:2px 4px}.fl-block-col-resize-feedback-left{right:20px;top:-7px}.fl-block-col-resize-feedback-right{left:20px;top:-7px}.fl-builder-has-submenu{position:relative}.fl-builder-has-submenu>ul.fl-builder-submenu{background:#00A0D2;box-shadow:0 0 20px rgba(0,0,0,.2);border-radius:0 4px 4px;display:none;left:0;list-style:none;margin:0;padding:6px 0;position:absolute;text-align:left;top:100%;width:165px;z-index:100008}.fl-builder-has-submenu>ul.fl-builder-submenu li{list-style:none;margin:0;padding:0}.fl-builder-submenu-right ul.fl-builder-submenu{left:auto;right:0}.fl-builder-has-submenu.fl-builder-submenu-open>ul.fl-builder-submenu{display:block}.fl-builder-has-submenu>ul.fl-builder-submenu li a{border-bottom:0 none;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none;display:block;line-height:13px;font-size:13px;font-weight:400;opacity:.8;filter:alpha(opacity=80);overflow:hidden;padding:6px 12px;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.fl-builder-has-submenu>ul.fl-builder-submenu li a:hover{background:#0197C6;color:#fff;opacity:1;filter:alpha(opacity=100);text-decoration:none}.fl-builder-actions-title,.fl-builder-alert-lightbox .fl-lightbox-message{color:#333!important;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px!important}.fl-builder-has-submenu .fl-builder-submenu .fa,.fl-builder-has-submenu .fl-builder-submenu .far,.fl-builder-has-submenu .fl-builder-submenu .fas{float:right;height:12px!important;line-height:12px!important;position:relative;right:-5px;width:14px!important}.fl-builder-has-submenu .fl-builder-has-submenu .fl-builder-submenu{display:none;left:100%;top:0}.fl-builder-has-submenu .fl-builder-submenu-right.fl-builder-has-submenu .fl-builder-submenu{left:auto;right:100%}.fl-builder-has-submenu .fl-builder-has-submenu:hover .fl-builder-submenu{display:block}.fl-builder-submenu-sep{padding:7px 0!important}.fl-builder-submenu-sep div{border-bottom:1px solid rgba(255,255,255,.4)}.fl-block-col-move,.fl-block-col-move-parent{cursor:move;position:relative}.fl-builder-submenu .fa-arrows-alt{cursor:move;display:none!important}.fl-builder-submenu a:hover .fa-arrows-alt{display:block!important;float:right;line-height:12px!important;height:12px!important}.fl-block-overlay-global ul.fl-builder-submenu{background:#ff9600!important}.fl-block-overlay-global ul.fl-builder-submenu li a:hover{background:#fa3}.fl-builder-actions-lightbox .fl-lightbox{display:block;width:300px;border-radius:4px}.fl-builder-actions-lightbox .fl-lightbox-content-wrap{display:block}.fl-builder-actions-lightbox .fl-builder-actions{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding:25px;text-align:center}.fl-builder-actions-title{display:block;margin-bottom:20px}.fl-builder-actions .fl-builder-button{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;margin-bottom:7px;min-height:36px}.fl-builder-alert-lightbox{padding:20px;z-index:30000000;top:0;pointer-events:auto}.fl-builder-alert-lightbox .fl-lightbox{max-width:440px;width:auto}.fl-builder-alert-lightbox .fl-lightbox-content-wrap{display:block}.fl-builder-alert-lightbox .fl-lightbox-message{line-height:24px;padding:30px}@keyframes fl-builder-content-section-entry{from{transform:translateY(150px) translateX(100px) scale(.3);opacity:0}to{transform:translateY(0) translateX(0) scale(1);opacity:1}}.fl-template-category-select{width:180px!important}.fl-template-selector .fl-builder-settings-section{margin:0 0 10px}.fl-template-selector .fl-builder-settings-fields{height:470px}.fl-template-selector .fl-builder-settings-tab{width:560px}.fl-template-selector .fl-builder-settings-tab-description{font-size:15px!important;margin:0!important;padding:10px 0 25px;text-align:center}.fl-template-preview{float:left;margin:0 25px 30px 0;position:relative;text-align:center;width:170px}.fl-template-preview.fl-last{margin-right:0}.fl-template-image{border:1px solid #d9d9d9;cursor:pointer;margin-bottom:12px;height:164px;overflow:hidden}.fl-template-image:hover{border-color:red}.fl-template-image img{max-height:none;width:100%}.fl-template-preview span{display:block;text-align:center}.fl-user-template-category-name{background:#f2f2f2;border-bottom:3px solid #dfdfdf;border-top:2px solid #dfdfdf;font-weight:700;padding:8px 15px}.fl-user-templates{border-bottom:1px solid #dfdfdf;padding:10px 0 20px}.fl-builder--user-templates-section-content{border-bottom:2px solid #e6eaed;padding:10px}.fl-builder--user-templates-section-content:first-child{padding-top:0}.fl-builder--user-templates-section-content:last-child,.fl-user-templates:last-child{border-bottom:none}.fl-builder--user-templates-section-name{font-weight:700;font-size:16px;color:#333;z-index:9999;padding:15px 10px;margin:0 10px}@keyframes fl-list-item-entry{from{opacity:0;transform:scale(.5) translateY(100px)}to{opacity:1;transform:scale(1) translateY(0)}}.fl-builder--save-new-user-template,.fl-user-template{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:4px;font-size:16px;font-weight:200;line-height:1.1;padding:10px 20px;color:#6d6d6d}.fl-user-template:hover{cursor:pointer;background:#fff;box-shadow:0 6px 20px rgba(0,0,0,.08);text-decoration:none;color:#111;padding-right:68px}.fl-user-template-name{overflow:hidden;text-overflow:ellipsis;-ms-flex:1;flex:1}.fl-user-template-actions{display:none;bottom:0;position:absolute;right:0;top:0}.fl-user-template:hover .fl-user-template-actions{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center}.fl-user-template-actions a{display:inline-block;padding:15px 0;width:30px}.fl-user-template:hover a:hover i{color:#444!important}.fl-user-templates-message{display:none}.fl-user-template-thumbnail{-ms-flex:0;flex:0;margin-right:20px}.fl-user-template-thumbnail .fl-builder--template-thumbnail{background-size:cover;background-position:center top;width:45px}.fl-user-template-thumbnail .fl-builder--template-thumbnail:hover{box-shadow:none;transform:scale(1);transition-property:none}.fl-builder--save-new-user-template .fl-user-template-thumbnail .fl-builder--template-thumbnail{border-style:dashed;border-width:2px;border-color:#ccd4da}.fl-builder--save-new-user-template .fl-save-control{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex:1;flex:1}.fl-builder--save-new-user-template .fl-save-control input{background:0 0;border:none!important;-ms-flex:1;flex:1;font-size:16px;margin-right:10px;margin-left:-12px;color:#000}.fl-builder--save-new-user-template .fl-save-control input::-webkit-input-placeholder{color:#777}.fl-builder--save-new-user-template .fl-save-control input::-moz-placeholder{color:#777}.fl-builder--save-new-user-template .fl-save-control input:-ms-input-placeholder{color:#777}.fl-builder--save-new-user-template .fl-save-control input:-moz-placeholder{color:#777}@keyframes fl-slide-in-right{from{transform:translateX(50px)}to{transform:translateX(0)}}.fl-builder--save-new-user-template .fl-save-control button{display:none;animation-name:fl-slide-in-right;animation-duration:.25s;background-color:#00a0d2;border:none;padding:0 15px}.fl-save-control-mask{display:none;background:0 0;position:absolute;top:-50px;left:0;bottom:0;right:0;z-index:-1;min-height:80vh}.fl-builder-templates-cta{margin-bottom:20px}.fl-builder-templates-cta p{display:inline-block!important;width:75%!important;font-size:14px!important;line-height:1.5!important;margin-bottom:0!important}.fl-builder-templates-cta .fl-builder-upgrade-button{font-size:13px!important;line-height:13px!important;position:relative;top:8px;left:15px;padding:1px 12px}.fl-builder-settings-message,.fl-builder-settings-message *{font-size:15px!important;line-height:23px!important}.single-fl-builder-template .fl-content{width:100%!important}form.fl-builder-settings{height:100%;margin:0;padding:0;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.fl-builder-settings-message{padding:20px 25px!important;background:#f2f2f2!important}.fl-builder-preview-loader{position:relative;top:-2px;margin-left:3px}.fl-lightbox-header .fl-builder-preview-loader{margin:0;position:absolute;right:40px;top:15px}@keyframes fl-grab-attention{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}.fl-lightbox-width-slim .fl-form-table{margin:20px 25px 10px 15px!important;width:calc(100% - 60px)}.fl-lightbox-width-slim .fl-form-table th{display:block;position:relative;padding:10px 0 0 12px!important;width:auto!important}.fl-lightbox-width-slim .fl-form-table td{display:block}.fl-lightbox-width-slim .fl-form-table td:first-child{padding-left:10px!important}.fl-lightbox-width-slim .fl-form-table .fl-field[data-type=editor] td:first-child{padding-left:0!important}.fl-field-label .fl-field-responsive-toggle,.fl-lightbox-width-slim .fl-field-control-wrapper .fl-field-responsive-toggle{display:none}.fl-lightbox-width-slim .fl-field-label .fl-field-responsive-toggle{display:inline-block;padding:0 5px!important}.fl-lightbox-width-slim .fl-builder-settings-fields select{width:100%}.fl-lightbox-width-slim .fl-color-picker{display:-ms-flexbox;display:flex;width:auto}.fl-lightbox-width-slim .fl-color-picker-clear{-ms-flex:0 0 50px;flex:0 0 50px}.fl-lightbox-width-slim .mce-menubtn.mce-fixed-width button{width:72px!important}.fl-lightbox-width-micro .mce-menubtn.mce-fixed-width button{width:38px!important}.fl-lightbox-width-micro .mce-btn[aria-label=Blockquote],.fl-lightbox-width-micro .mce-btn[aria-label=Fullscreen]{display:none}.fl-lightbox-width-slim .fl-builder-field-multiple{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;position:relative}.fl-lightbox-width-slim .fl-builder-field-multiple .fl-field-control,.fl-lightbox-width-slim .fl-builder-field-multiple .fl-field-label{width:100%!important}.fl-lightbox-width-slim .fl-builder-field-multiple .fl-builder-field-actions{position:absolute!important;top:0;right:0;width:70px}.fl-lightbox-width-slim .fl-field[data-type=time] select{width:auto}.fl-builder-settings-tabs{margin:6px;border:2px solid #e6eaed;border-radius:4px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;overflow:hidden}.fl-builder-content-group-select{padding:0 10px 6px;display:none}.fl-builder-content-group-select select{display:block;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;padding:8px 10px;background:url(../img/svg/select-arrow-down-alt2.svg) center right 10px no-repeat #fff!important;border:2px solid #e4e7ea;color:#161B20}select:focus{border-width:2px!important;border-style:solid!important;border-color:#00a0d2!important;outline:0!important}.fl-legacy-settings-tab{background:url(../img/ajax-loader.svg) center center no-repeat;height:100px}.fl-builder-settings-tab:first-child .fl-legacy-settings-tab{background:0 0;height:auto}body .fl-builder-settings-tabs>*{box-sizing:border-box;color:#676F7A!important;fill:#676F7A!important;background:0 0;border:2px solid transparent;border-radius:0;margin:0;outline:0;padding:6px 15px;text-decoration:none!important;font-size:14px;font-weight:400!important;-ms-flex:0 0 auto;flex:0 0 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;text-align:center}.fl-builder-settings-tabs-more g,.fl-builder-settings-tabs-more path,.fl-builder-settings-tabs-more svg,.fl-color-picker-color.fl-color-picker-empty svg.fl-color-picker-icon path{fill:inherit}body .fl-builder-settings-tabs>:first-child{border-top-left-radius:3px;border-bottom-left-radius:3px}body .fl-builder-settings-tabs>:last-child{border-top-right-radius:3px;border-bottom-right-radius:3px}body .fl-lightbox-width-slim .fl-builder-settings-tabs>*{-ms-flex:1 1 auto;flex:1 1 auto;padding:6px 8px}body .fl-builder-settings-tabs>.fl-builder-settings-tabs-more{-ms-flex:0 0 60px;flex:0 0 60px;display:none;margin-left:auto;-ms-flex-pack:center;justify-content:center}.fl-builder-settings-tabs-more svg{width:16px;height:auto;margin:auto}body .fl-lightbox-has-tab-overflow .fl-builder-settings-tabs-more{display:-ms-flexbox;display:flex}.fl-builder-settings-tabs>:active,.fl-builder-settings-tabs>:hover{top:0;color:#333;background:0 0;border:2px solid transparent}.fl-builder-settings-tabs>:focus{top:0;outline:0;border:2px solid transparent;background:0 0;color:#0086b0;fill:#0086b0}.fl-builder-settings-tabs .fl-active,.fl-builder-settings-tabs-more.fl-contains-active,.fl-builder-settings-tabs-overflow-menu .fl-active{color:#0086b0!important;fill:#0086b0!important;position:relative;background:#e6eaed}.fl-builder-settings-tabs .fl-active.fl-overflowed,.fl-builder-settings-tabs .fl-overflowed{display:none!important}.fl-builder-settings-tabs .error{color:#d03436;padding-right:10px}.fl-builder-settings-tabs .error .fl-error-icon,.fl-builder-settings-tabs-overflow-menu .error .fl-error-icon{background:url(../img/sprite.png) -148px -5px no-repeat;display:inline-block;height:16px;margin-left:7px;position:relative;top:3px;width:16px}.fl-builder-settings-tabs-more.fl-contains-errors{fill:#d03436!important}.fl-builder-settings-tab{display:none;width:auto!important}.fl-builder-settings-tab.fl-active{display:block}.fl-builder-settings-tab-description{background:#e4e7ea;padding:10px 15px;border-radius:4px;margin:20px}.fl-builder-settings-tab-description a{text-decoration:underline!important}.fl-builder-settings-tab-description a:hover{color:#333}.fl-builder-settings-tabs-overflow-menu{display:none;position:absolute;left:0;right:0;border:2px solid #e6eaed;border-top:3px solid #00a0d2;border-radius:4px;background:#fff;z-index:9999;margin:0 6px;padding:10px;-ms-flex-direction:column;flex-direction:column;box-shadow:0 0 20px 2px rgba(0,0,0,.2)}.fl-builder-settings-tabs-overflow-menu:before{bottom:100%;right:20px;content:" ";height:0;width:0;position:absolute;pointer-events:none;border:solid;border-color:rgba(255,255,255,0);border-bottom-color:#00a0d2;border-width:10px;margin-left:-10px}.fl-builder-settings-tabs-overflow-menu>a{display:block;padding:10px 15px;font-size:14px;font-weight:600!important;border:2px solid transparent;border-radius:4px;outline:0}.fl-builder-settings-tabs-overflow-menu>a:hover{background:#e6eaed;text-decoration:none}.fl-builder-settings-tabs-overflow-click-mask{display:none;position:fixed;top:0;bottom:0;left:0;right:0;background:0 0;z-index:11}.fl-form-table{background:none;border:none;width:calc(100% - 35px)}.fl-form-table tbody{border:none}.fl-form-table tr,.fl-form-table tr:nth-child(even){background:0 0}.fl-form-table td,.fl-form-table th{background:0 0!important;border:none!important;font-weight:400!important;text-align:left!important}.fl-form-table th{padding:10px 10px 10px 30px!important;vertical-align:top!important;width:200px!important}.fl-form-table td:first-child{padding-left:30px!important}.fl-form-table th label{color:#333;width:auto;max-width:100%}.fl-form-table td{padding:8px 10px}.fl-lightbox-width-slim .fl-form-table td{padding:4px 0 10px}.fl-builder-settings-fields{margin:0;overflow:hidden;position:relative;-ms-flex:1 100%;flex:1 100%;visibility:hidden}.fl-lightbox-header .fl-builder-settings-fields{height:auto;margin:0;position:absolute;right:10px;top:10px}.fl-builder-settings-fields .fl-nanoscroller-content{padding:0}.fl-builder-settings-fields .fl-field-control-wrapper{position:relative}.fl-field{animation-delay:.1s}.fl-builder-settings-fields input[type=email],.fl-builder-settings-fields input[type=file],.fl-builder-settings-fields input[type=number],.fl-builder-settings-fields input[type=password],.fl-builder-settings-fields input[type=search],.fl-builder-settings-fields input[type=tel],.fl-builder-settings-fields input[type=text],.fl-builder-settings-fields input[type=url],.fl-builder-settings-fields select,.fl-builder-settings-fields textarea{background:#fff!important;border-color:transparent!important;border-style:solid;border-width:2px;border-radius:4px!important;box-shadow:0 2px 4px 0 rgba(0,0,0,.12);color:#333!important;display:inline;font-size:13px;height:auto;line-height:15px;margin:1px;outline:0;padding:3px 9px;width:auto;box-sizing:border-box}.fl-builder-settings-fields input[type=email],.fl-builder-settings-fields input[type=file],.fl-builder-settings-fields input[type=number],.fl-builder-settings-fields input[type=password],.fl-builder-settings-fields input[type=search],.fl-builder-settings-fields input[type=tel],.fl-builder-settings-fields input[type=text],.fl-builder-settings-fields input[type=url],.fl-builder-settings-fields select:not(multiple){height:36px!important}.fl-builder-settings-fields select,.fl-builder-settings-fields select[multiple]{height:auto!important}.fl-builder-settings-fields input[type=number]{width:70px}.fl-builder-lightbox .fl-builder-settings-fields input[type=email]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=file]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=number]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=password]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=search]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=tel]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=text]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=url]:focus,.fl-builder-lightbox .fl-builder-settings-fields select:focus,.fl-builder-lightbox .fl-builder-settings-fields textarea:focus{border-width:2px!important;border-style:solid!important;border-color:#00a0d2!important;box-shadow:0 2px 4px 0 rgba(0,0,0,.12)!important}.fl-builder-settings-fields ::-webkit-input-placeholder{color:#999!important;font-size:13px}.fl-builder-settings-fields input:-moz-placeholder{color:#999;font-size:13px}.fl-builder-settings-fields ::-moz-placeholder{color:#999!important;font-size:13px}.fl-builder-settings-fields input:-ms-input-placeholder{color:#999;font-size:13px}.fl-builder-settings-fields label{display:inline-block;font-weight:400;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-bottom:3px}.fl-builder-settings-fields select{-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;color:#000;margin:0 0 2px;padding:2px 10px;padding-right:30px!important;background:url(../img/svg/select-arrow-down-alt2.svg) center right 10px no-repeat #fff!important}.fl-builder-settings-fields select[multiple]{height:60px;background-image:none!important}.fl-builder-custom-field select,.fl-photo-field select{-webkit-box-shadow:none;border-color:#e6eaed!important}.fl-font-field .fl-font-field-font{margin-bottom:4px;width:calc(70% - 5px)!important}.fl-font-field .fl-font-field-weight{width:30%!important}.fl-builder-settings-fields .fl-text-field-add-value{min-width:50%;margin-top:.62em}.fl-lightbox-width-slim input.text-full+.fl-field-description,.fl-lightbox-width-slim select+.fl-field-description{display:block;padding:8px 10px;margin:0}.fl-field[data-type=dimension] .fl-field-control-wrapper{display:-ms-flexbox;display:flex}.fl-field[data-type=dimension] .fl-field-description{padding-top:9px}.fl-field[data-type=dimension] .fl-field-responsive-toggle{padding:9px 9px 0 0}.fl-dimension-field-units{display:-ms-flexbox;display:flex}.fl-dimension-field-unit{padding-right:5px}.fl-dimension-field-unit input{max-width:60px;width:auto!important}.fl-dimension-field-unit label{padding:5px 0 0;font-size:12px;color:inherit!important;display:block;text-align:center}.fl-link-field-search input{box-shadow:none!important;width:100%!important;padding:3px 9px!important}.fl-link-field-search #as-original-link-search{width:100%}.fl-builder-settings-section{border-top:2px solid #E6EAED}.fl-builder-settings-section:first-child{border-top:none!important}.fl-custom-query .fl-builder-settings-section{border-top:2px solid #E6EAED!important}.fl-builder-settings-description{padding:0 10px 10px;margin:0;font-style:italic;opacity:.75}.fl-builder-settings-fields table{margin:20px 0}.fl-builder-settings-fields h3.fl-builder-settings-title{display:inline-block;background:#E6EAED;padding:4px 10px 4px 15px;margin:0;text-transform:uppercase!important;border-bottom-right-radius:4px;font-size:12px!important;font-weight:700;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.wp-core-ui h1,.wp-core-ui h2,.wp-core-ui h3,.wp-core-ui h4,.wp-core-ui h5,.wp-core-ui h6,.wp-core-ui p{color:#333;font-family:inherit}.wp-core-ui #media-attachment-date-filters{width:275px}.wp-core-ui input[type=search]::-webkit-input-placeholder{color:#333}.wp-core-ui input[type=search]:-ms-input-placeholder{color:#333}.wp-core-ui input[type=search]::-ms-input-placeholder{color:#333}.wp-core-ui input[type=search]::placeholder{color:#333}.wp-core-ui .submitbox .submitdelete{color:#a00}.wp-core-ui button{font-weight:400}.wp-core-ui input[type=email],.wp-core-ui input[type=file],.wp-core-ui input[type=number],.wp-core-ui input[type=password],.wp-core-ui input[type=search],.wp-core-ui input[type=tel],.wp-core-ui input[type=text],.wp-core-ui input[type=url],.wp-core-ui select,.wp-core-ui textarea{background-color:#fff;border-color:#dfdfdf;border-style:solid;border-width:1px;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none;color:#333;font-weight:400}.wp-core-ui input[type=email]:focus,.wp-core-ui input[type=file]:focus,.wp-core-ui input[type=number]:focus,.wp-core-ui input[type=password]:focus,.wp-core-ui input[type=search]:focus,.wp-core-ui input[type=tel]:focus,.wp-core-ui input[type=text]:focus,.wp-core-ui input[type=url]:focus,.wp-core-ui select:focus,.wp-core-ui textarea:focus{background:0 0;border-color:#aaa}.wp-core-ui input[type=search]{background-image:none;padding:6px}.fl-field-responsive-setting{display:inline-block}.fl-field-responsive-setting-medium,.fl-field-responsive-setting-responsive{display:none}i.fl-field-responsive-toggle{color:grey;cursor:pointer;display:inline-block;font-size:15px!important;height:auto;line-height:18px!important;text-align:left;vertical-align:middle;width:20px}i.fl-field-responsive-toggle:hover{color:#000}.fl-builder-settings-fields input.text-full,.fl-builder-settings-fields textarea{width:100%}.fl-color-picker{cursor:pointer}.fl-color-picker .fl-color-picker-clear{box-sizing:border-box}.fl-color-picker .fl-color-picker-clear:hover{background-color:#ededed}.colorpicker input{padding:0!important;font-size:11px!important;color:#fff!important;width:29px!important;height:auto!important;background:0 0!important;border:none!important}.colorpicker .colorpicker_hex input{width:45px!important}.fl-builder-custom-field{background:#fff;border:2px solid transparent;border-radius:4px;padding:7px 10px;box-shadow:0 2px 4px 0 rgba(0,0,0,.12);min-height:36px;box-sizing:border-box}.fl-builder-field-multiple .fl-builder-custom-field{cursor:move}.fl-builder-custom-field a{color:#21759b!important;text-decoration:underline!important}.fl-builder-custom-field a:hover{color:#d54e21!important}.fl-builder-custom-field label.error{margin-top:5px}.fl-photo-field .fl-photo-preview{display:-ms-flexbox;display:flex}.fl-photo-field .fl-photo-select,.fl-photo-field.fl-photo-empty .fl-photo-preview{display:none}.fl-photo-field.fl-photo-empty .fl-photo-select{display:block}.fl-photo-field .fl-photo-preview-img{line-height:0;margin:5px 0}.fl-photo-field .fl-photo-preview-img img{max-width:60px}.fl-photo-field .fl-photo-preview select{margin:8px 0 8px 10px;width:200px}.fl-photo-field.fl-photo-no-attachment .fl-photo-preview select{display:none}.fl-photo-field .fl-photo-preview-filename{display:none;font-size:14px;font-weight:700;margin:7px 0 5px 11px}.fl-photo-field.fl-photo-no-attachment .fl-photo-preview-filename{display:inline-block;word-break:break-all}.fl-multiple-photos-field .fl-multiple-photos-select,.fl-multiple-photos-field.fl-multiple-photos-empty .fl-multiple-photos-add,.fl-multiple-photos-field.fl-multiple-photos-empty .fl-multiple-photos-count,.fl-multiple-photos-field.fl-multiple-photos-empty .fl-multiple-photos-edit,.fl-multiple-photos-lightbox .gallery-settings,.fl-photo-field.fl-photo-no-attachment .fl-photo-edit{display:none}.fl-photo-field .fl-photo-edit{margin:0 0 0 11px}.fl-photo-field .fl-photo-remove,.fl-photo-field .fl-photo-replace{margin:0 0 0 8px}.fl-builder-edit .media-modal{z-index:9999991}.fl-builder-edit .media-modal-backdrop{z-index:999999}.fl-builder-edit .media-frame{-webkit-backface-visibility:hidden}.fl-builder-edit .media-modal-content h1{font-family:inherit}.fl-builder-edit form#wp-link,.popover[class*=tour-],ul.as-list{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.fl-builder-edit .media-modal-content .thumbnail{padding:0;border:none;border-radius:0}.fl-builder-edit .media-modal-content .attachment-preview .thumbnail{margin-bottom:0}.fl-builder-edit .media-modal-content .attachment-preview .thumbnail img{max-width:none}.fl-builder-edit button.media-modal-close{position:absolute;box-shadow:none;-webkit-box-shadow:none}.fl-builder-edit .media-frame.hide-menu{visibility:visible}span.select2-container.select2-container--open{z-index:9999999}.fl-multiple-photos-field .fl-multiple-photos-add{margin:0 0 0 8px}.fl-multiple-photos-field.fl-multiple-photos-empty .fl-multiple-photos-select{display:inline}.fl-multiple-photos-count{font-weight:700;margin-bottom:3px}.fl-video-field .fl-video-select,.fl-video-field.fl-video-empty .fl-video-preview{display:none}.fl-video-field.fl-video-empty .fl-video-select{display:block}.fl-video-field .fl-video-preview-img{float:left;line-height:0;margin:5px 0}.fl-video-field .fl-video-preview-img img{max-width:60px}.fl-video-field .fl-video-preview-img .dashicons.dashicons-media-video{display:block;font-size:60px;height:60px;line-height:60px;width:60px}.fl-video-field .fl-video-preview-filename{display:inline-block;font-size:14px;font-weight:700;margin:7px 0 5px 11px}.fl-video-field .fl-video-remove,.fl-video-field .fl-video-replace{margin:0 0 0 11px}.fl-multiple-audios-field .fl-multiple-audios-select,.fl-multiple-audios-field.fl-multiple-audios-empty .fl-multiple-audios-add,.fl-multiple-audios-field.fl-multiple-audios-empty .fl-multiple-audios-edit{display:none}.fl-multiple-audios-field.fl-multiple-audios-empty .fl-multiple-audios-select{display:block}.fl-multiple-audios-field .fl-multiple-audios-add{margin:0 0 0 8px}.fl-icon-field .fl-icon-select,.fl-icon-field.fl-icon-empty .fl-icon-preview{display:none}.fl-icon-field.fl-icon-empty .fl-icon-select{display:block}.fl-icon-field .fl-icon-preview i{display:inline-block;font-size:28px;margin:10px 10px 9px;vertical-align:middle}.fl-icon-field .fl-icon-remove{margin:0 0 0 8px}.fl-builder-hidden-editor{display:none}.fl-builder-settings .wp-switch-editor{background:#ebebeb;border:1px solid #e5e5e5;border-radius:0;color:#333}.fl-builder-settings .wp-editor-container{border:1px solid #e5e5e5}.fl-builder-settings .mce-toolbar .mce-btn-group .mce-btn{margin:2px 0}.fl-builder-settings .mce-menubtn.mce-fixed-width button{width:100px}.fl-builder-settings .mce-menubtn.mce-fixed-width span{width:100%}.mce-close:active,.mce-close:hover,.mce-toolbar .mce-btn button:active,.mce-toolbar .mce-btn button:hover,.mce-window .mce-btn button:active,.mce-window .mce-btn button:hover{background:0 0;border:none}.wp-core-ui .quicktags-toolbar input.button.button-small{margin:1px!important}.wp-editor-container textarea.wp-editor-area{background:0 0;border:none;padding:10px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.fl-builder-edit form#wp-link{color:#000;font-size:13px}.fl-builder-edit form#wp-link #link-options label{display:block;margin-bottom:2px}.fl-builder-edit form#wp-link #link-options label span{padding-right:10px;vertical-align:middle}.fl-builder-edit form#wp-link #link-options input[type=text]{display:inline-block;height:auto;margin:5px 0 0;padding:3px 5px;width:80%}.fl-builder-edit form#wp-link .query-results{top:225px}.fl-code-field{border:1px solid #E6E6E6;border-left:none}.ace_editor,.ace_editor *{font-family:Monaco,Menlo,"Ubuntu Mono","Droid Sans Mono",Consolas,monospace!important;font-size:12px!important;font-weight:400!important;letter-spacing:0!important}.fl-layout-field-option{border:2px solid #d9d9d9;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;box-sizing:border-box!important;-moz-box-sizing:border-box!important;-webkit-box-sizing:border-box!important;cursor:pointer;float:left;line-height:0;max-width:23%;margin:0 1% 2%;padding:5px}.fl-layout-field-option-selected,.fl-layout-field-option:hover{border-color:red}.fl-layout-field-option img{max-width:100%}.fl-link-field .fl-link-field-input-wrap{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.fl-link-field-input{width:auto!important;-ms-flex:1 1 100%;flex:1 1 100%}.fl-link-field .fl-link-field-input-wrap button{-ms-flex:0 0 0%;flex:0 0 0%;margin-left:5px}.fl-link-field-search{display:none;border:2px solid #e6eaed;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;margin:4px 0 0;padding:10px}.fl-link-field-search-title{display:block;margin:0 0 3px 2px}.fl-link-field-search-cancel{margin-top:6px}.fl-help-tooltip{display:inline-block;position:relative}.fl-lightbox-width-slim .fl-help-tooltip{position:static}.fl-help-tooltip-icon{color:#999!important;cursor:pointer;font-size:15px!important;padding:5px;vertical-align:middle}.fl-help-tooltip-text{box-sizing:border-box;background:#fff;border:1px solid #ccc;box-shadow:0 0 5px #ccc;-moz-box-shadow:0 0 5px #ccc;-webkit-box-shadow:0 0 5px #ccc;display:none;font-weight:400;left:23px;padding:10px 13px;position:absolute;top:-6px;width:250px;z-index:1000;border-radius:4px}.fl-lightbox-width-slim .fl-help-tooltip-text{top:30px;left:0;width:100%}.fl-field-control .fl-form-field{margin-bottom:0}.fl-form-field-preview-text i{display:inline-block;font-size:18px;line-height:22px;margin-bottom:5px}.fl-builder-field-actions{padding-left:0!important;padding-right:0!important;text-align:center;width:85px}.fl-builder-field-actions i{color:#999!important;cursor:pointer;font-size:13px!important;line-height:29px!important;width:16px}.fl-builder-field-actions i:hover{color:#000!important}.fl-builder-field-actions i.fl-builder-field-copy,.fl-builder-field-actions i.fl-builder-field-delete{margin-left:5px}.fl-builder-field-actions i.fl-builder-field-move{cursor:move}.fl-builder-field-dd-helper{background:#ccc;height:30px!important;float:left;width:130px!important}.fl-builder-field-dd-zone{border:1px dashed #ccc;height:30px}.fl-builder-field-actions-single .fl-builder-field-delete,.fl-builder-field-actions-single .fl-builder-field-move{display:none!important}.fl-lightbox-width-slim .fl-builder-field-actions-single .fl-builder-field-copy{float:right!important}.fl-builder-field-multiple .fl-builder-field-actions,.fl-builder-field-multiple .fl-field-control,.fl-builder-field-multiple .fl-field-label{padding-top:2px!important;padding-bottom:2px!important}.fl-builder-field-multiple .fl-builder-field-actions{min-width:70px!important}.fl-builder-field-multiple[data-field=icons] .fl-builder-field-actions{width:70px!important}.fl-builder-field-multiple.ui-sortable-helper .fl-field-control{width:60%}.fl-builder-field-multiple.ui-sortable-helper .fl-builder-field-actions{display:none}.fl-builder-widget-settings input{display:inline-block!important;margin:5px 10px 8px!important}.fl-builder-lightbox-loading{background:url(../img/ajax-loader.svg) center center no-repeat;height:100px}.fl-builder-settings .error,.fl-builder-settings input.error{color:#d03436!important}.fl-builder-settings label.error,.fl-builder-settings p.error{color:#d03436;display:block;margin-top:5px}.fl-builder-settings .fl-form-table .fl-field-description{color:#464646;font-style:normal;margin-left:2px}.fl-lightbox .fl-field-connection{right:-1px}.fl-lightbox .fl-field-connection-content{border:2px solid transparent!important;background:#e4e7ea!important}.fl-field-connection-content .fl-field-connection-label{color:#676f7a!important}ul.as-selections{background-color:#fff;border:none;border-radius:4px;box-shadow:none;color:#333;font-size:12px;height:auto;line-height:15px;margin:1px;outline:0;padding:3px;width:auto}ul.as-selections.loading{background:url(../img/ajax-loader-small.svg) 98% center no-repeat}ul.as-selections li.as-selection-item{background:#d4eaf6;border:none;font-size:11px;line-height:14px;padding:8px 15px;border-radius:4px;margin:2px}ul.as-selections li.as-selection-item.blur{background:#f4f4f4}ul.as-selections li.as-selection-item a.as-close{line-height:12px}ul.as-selections li.as-original{margin:0}ul.as-selections li.as-original input{height:auto;font-size:12px;margin:0;padding:0;box-shadow:none}ul.as-list{margin:0;font-size:13px;color:#000;background-color:#fff;background-color:rgba(255,255,255,.95);z-index:2;box-shadow:0 0 10px rgba(0,0,0,.1);border:none;border:1px solid #dfdfdf;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px}li.as-message,li.as-result-item{border:none}li.as-result-item.active{background:#e5e5e5;border-radius:0;color:#333;text-shadow:none}li.as-result-item em{background:0 0!important;color:#333!important;font-size:12px;padding:0!important;font-weight:700}.fl-custom-query-filter{display:none}.fl-custom-query .fl-field[data-type=suggest] select{margin-bottom:5px;width:100%}.fl-builder-service-settings{position:relative}.fl-builder-service-error{color:red!important;padding:15px 0 0}.fl-builder-service-account-delete{color:red!important;margin-left:10px;position:relative;top:2px}#fl-field-visibility_user_capability .fl-field-description,.fl-builder-service-connect-row .fl-field-description{background:#f0f0f0;color:#333!important;display:block;float:none;margin:10px 0 0;padding:10px}#fl-field-visibility_user_capability .fl-field-description a,.fl-builder-service-connect-row .fl-field-description a{color:#21759b!important;text-decoration:underline!important}.fl-ordering-field-option{background:#fff;border:1px solid #dfdfdf;border-radius:3px;cursor:move;margin-bottom:5px;padding:5px 10px}.fl-ordering-field-option .fa{color:#ccc;float:right;line-height:16px}#tiptip_holder{z-index:1000000}#tiptip_holder.tip_top #tiptip_arrow_inner{border-top-color:#333}#tiptip_holder.tip_bottom #tiptip_arrow_inner{border-bottom-color:#333}#tiptip_holder.tip_right #tiptip_arrow_inner{border-right-color:#333}#tiptip_holder.tip_left #tiptip_arrow_inner{border-left-color:#333}#tiptip_content{background:#333;box-shadow:none}.fl-builder-getting-started-video{line-height:0!important;padding:10px}.fl-builder-getting-started-video iframe{border:none;height:326px;width:100%}.fl-builder-tour-actions .fl-builder-actions-title{font-size:14px!important;line-height:19px}.fl-builder-tour-mask{bottom:0;left:0;position:fixed;right:0;top:0;z-index:100000000}.fl-builder-tour-dimmed{background:rgba(0,0,0,.7);bottom:0;left:0;position:absolute;right:0;top:0}body>.fl-builder-tour-dimmed{position:fixed}.tour-backdrop{z-index:110000}.popover[class*=tour-]{border:1px solid #ccc;border-radius:0;box-shadow:0 0 40px rgba(0,0,0,.3);color:#666;font-size:13px;font-weight:400;line-height:18px;max-width:none;padding:0;width:300px;z-index:100000001}.popover[class*=tour-].bottom>.arrow{border-bottom-color:#ccc}.popover[class*=tour-].bottom>.arrow:after{border-bottom-color:#f7f7f7}.popover[class*=tour-] .popover-title{border-radius:0;color:#333;letter-spacing:normal;text-transform:none}.popover[class*=tour-] .fa-times{color:#b3b3b3;cursor:pointer;font-size:16px;padding:5px;position:absolute;right:3px;top:2px}.popover[class*=tour-] .fa-times:hover{color:#666}.popover[class*=tour-] .popover-content{border-bottom:1px solid #d9d9d9;padding:13px 15px}.popover[class*=tour-] .fl-builder-tour-next{display:block;float:none;width:100%}.popover-navigation button{min-height:36px}.fl-builder-shortcode-mask-wrap{position:relative}.fl-builder-shortcode-mask{bottom:-1px;left:-1px;position:absolute;right:-1px;top:-1px;z-index:1}.fl-builder--search{border:2px solid transparent;position:relative;padding:0;width:54px;transition-property:width;transition-delay:.1s;transition-duration:.15s}.fl-builder--search.is-expanded{border:2px solid #00A0D0}.fl-builder--search input[type=text],.fl-builder--search input[type=text]:focus{background-color:transparent;border:none!important;box-sizing:border-box;width:100%;font-size:16px;text-align:center}.fl-builder--search:before{display:-ms-flexbox;display:flex;top:0;left:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;content:"\f002";font:normal normal normal 14px/1 Font Awesome\ 5 Free;text-align:center;width:100%;height:100%;position:absolute;pointer-events:none;color:rgba(128,128,128,.6);font-size:17px;opacity:1;transition-property:opacity;transition-duration:.15s}.fl-builder--main-menu-panel,.fl-builder-ui-keyboard-shortcuts{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif!important}.fl-builder--search.has-text:before,.fl-builder--search.is-expanded:before{opacity:0}.fl-builder--search input::-webkit-input-placeholder{color:rgba(128,128,128,0)!important;transition:color .25s}.fl-builder--search input:focus::-webkit-input-placeholder{color:rgba(128,128,128,.4)!important}.fl-builder--search .search-label{cursor:text}.fl-builder--search .search-clear{display:none;padding:10px 10px 10px 30px;color:#a7a7a7;font-size:12px;position:absolute;right:0;top:0;background-color:#eff1f2;background:linear-gradient(to left,#e4e7ea,#e4e7ea 75%,rgba(228,231,234,0))}.fl-builder--search.has-text .search-clear,.fl-builder--search.is-expanded input{display:inline-block}.fl-builder--search:hover .search-clear{color:#888;background-color:#eff1f2;background:linear-gradient(to left,#dadfe5,#dadfe5 75%,rgba(218,223,229,0))}.fl-builder--search.is-expanded{width:246px}@keyframes fl-builder-show-menu-item{from{transform:translateY(10px) scale(.8);opacity:0}to{transform:translateX(0) translateY(0) scale(1);opacity:1}}.fl-builder--main-menu-panel{display:none;box-sizing:border-box;position:fixed;top:calc(48px + 10px);left:10px;width:360px;color:#222;max-height:calc(100% - 66px);border-radius:4px;background:#fff;border:2px solid #D5DADD;border-top:3px solid #00a0d2;box-shadow:0 15px 45px 8px rgba(0,0,0,.04);font-size:14px!important;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:10000009;pointer-events:auto}.fl-builder--main-menu-panel.is-showing{display:-ms-flexbox;display:flex}.fl-builder--main-menu-panel:before,.fl-theme-builder-preview-select-open .fl-theme-builder-preview-select-items:before{bottom:100%;right:6px;content:" ";height:0;width:0;position:absolute;pointer-events:none;border:solid;border-color:rgba(255,255,255,0);border-bottom-color:#00a0d2;border-width:13px;margin-left:-13px}.fl-builder--main-menu-panel-views{-ms-flex:1 1 100%;flex:1 1 100%;overflow:auto}.fl-builder--main-menu-panel-mask{display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000119}.fl-builder--main-menu-panel .fl-builder--tabs{padding-left:20px;padding-top:15px}.fl-builder--main-menu-panel-view{display:none}.fl-builder--main-menu-panel-view.is-showing{display:block}.fl-builder--main-menu-panel-view-title{font-size:24px;font-weight:600;padding:25px 22px 0;line-height:1;white-space:nowrap}.fl-builder--main-menu-panel-view-title .title-accessory{float:right;color:#b1b1b1}.fl-builder--main-menu-panel-view-title .title-accessory>i{font-size:20px!important;width:25px!important}.fl-builder--main-menu-panel-view-title .title-accessory>i:hover{color:#222}.fl-builder--main-menu-panel-view-title .pop-view{padding:10px;margin-left:-10px;opacity:.5;font-size:25px;font-weight:400;cursor:pointer;background:0 0;outline:0;border:none;color:inherit}.fl-builder--main-menu-panel-view-title .pop-view:focus{outline:0;top:0;background:#E5EAED!important}.fl-builder--menu-item:before{display:block;content:"";float:none;clear:both}.fl-builder--menu-item{color:inherit;text-align:left;box-sizing:border-box;display:block;padding:10px 15px;margin:0 10px;width:calc(100% - 20px);background:0 0;border:none;border-radius:4px;font-size:14px;line-height:1.1;cursor:pointer;opacity:1}.fl-builder--menu-item:hover{background:#eaf1f8;border:none;text-decoration:none;color:#000}.fl-builder--selector-menu .fl-builder--menu-item:hover{background:#fff}.fl-builder--menu-item-accessory{float:right;text-align:center;display:inline-block;min-width:40px;font-size:14px}.fl-builder--menu-item-accessory.view-arrow{font-size:18px}.fl-builder--menu{padding:0;margin:20px 0}.fl-builder--menu hr{margin:8px 0;background-color:#e6eaed!important;height:2px;border:none}.fl-builder--menu .fl-builder-video-wrap{padding:0 10px 10px}.fl-revision-list-item{display:-ms-flexbox;display:flex}.fl-revision-list-item-text{padding-left:15px}.fl-revision-list-item-date{padding-bottom:5px}.fl-builder--revision-actions{display:none;position:fixed;top:4px;left:4px;z-index:100008;padding:4px 4px 6px;-ms-flex-pack:center;justify-content:center;background:#fff;border-radius:4px}.fl-builder--revision-actions *{margin-right:5px}.fl-builder--revision-actions :last-child{margin:0}.fl-builder--menu-item[data-event=noRevisionsMessage]:hover{background:0 0;box-shadow:none;cursor:default}.fl-no-revisions-message-title{font-weight:700;margin-bottom:10px}.fl-no-revisions-message-text{line-height:22px}.fl-builder-module-placeholder-message{border:1px dashed #ccc;overflow:hidden;padding:20px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.fl-field-connections-menu{z-index:999999}.fl-field-connections-toggle{right:-30px!important}.fl-builder-add-ultimate-presets-button,.fl-builder-add-ultimate-rows-button,.fl-builder-pp-add-template-button,.pp-preview-button,.uabb-live-preview-button{display:none!important}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block;-ms-touch-action:none;touch-action:none;background:0 0;transition-property:background;transition-duration:.15s}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-ne,.ui-resizable-nw,.ui-resizable-se,.ui-resizable-sw{width:12px;height:12px}.ui-resizable-se{cursor:se-resize;right:-4px;bottom:-4px}.ui-resizable-sw{cursor:sw-resize;left:-4px;bottom:-4px}.ui-resizable-nw{cursor:nw-resize;left:-4px;top:-4px}.ui-resizable-ne{cursor:ne-resize;right:-4px;top:-4px}.fl-builder-resizable-iframe-fix{position:absolute;top:0;right:0;bottom:0;left:0;z-index:100000000}.fl-builder-panel .ui-resizable-handle:active,.fl-builder-panel .ui-resizable-handle:hover,.fl-lightbox .ui-resizable-handle:active,.fl-lightbox .ui-resizable-handle:hover{background:#00a0d2}.fl-builder-panel .ui-resizable-n,.fl-builder-panel .ui-resizable-s,.fl-lightbox .ui-resizable-n,.fl-lightbox .ui-resizable-s{height:6px}.fl-builder-panel .ui-resizable-n,.fl-lightbox .ui-resizable-n{top:-3px}.fl-builder-panel .ui-resizable-s,.fl-lightbox .ui-resizable-s{bottom:-3px}.fl-builder-panel .ui-resizable-e,.fl-builder-panel .ui-resizable-w,.fl-lightbox .ui-resizable-e,.fl-lightbox .ui-resizable-w{width:6px}.fl-builder-panel .ui-resizable-e,.fl-lightbox .ui-resizable-e{right:-3px}.fl-builder-panel .ui-resizable-w,.fl-lightbox .ui-resizable-w{left:-3px}.fl-lightbox .ui-resizable-ne,.fl-lightbox .ui-resizable-nw,.fl-lightbox .ui-resizable-se,.fl-lightbox .ui-resizable-sw{background:0 0;border:6px solid transparent}.fl-lightbox .ui-resizable-ne:active,.fl-lightbox .ui-resizable-ne:hover,.fl-lightbox .ui-resizable-nw:active,.fl-lightbox .ui-resizable-nw:hover,.fl-lightbox .ui-resizable-se:active,.fl-lightbox .ui-resizable-se:hover,.fl-lightbox .ui-resizable-sw:active,.fl-lightbox .ui-resizable-sw:hover{background:0 0;border-color:#00a0d2}.fl-lightbox .ui-resizable-ne{border-bottom:none;border-left:none;border-top-right-radius:4px}.fl-lightbox .ui-resizable-nw{border-bottom:none;border-right:none;border-top-left-radius:4px}.fl-lightbox .ui-resizable-se{border-top:none;border-left:none;border-bottom-right-radius:4px}.fl-lightbox .ui-resizable-sw{border-top:none;border-right:none;border-bottom-left-radius:4px}.fl-builder-ui-keyboard-shortcuts{display:none;position:fixed;top:0;left:0;bottom:0;right:0;z-index:999999;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;background:rgba(50,50,50,.88);font-size:15px;line-height:1.3;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fl-builder-ui-keyboard-shortcuts.is-showing{display:-ms-flexbox;display:flex}.fl-builder-ui-keyboard-shortcuts-content{box-sizing:border-box;width:500px;background:#f5f7f9;border-radius:4px;padding:30px 0 0;box-shadow:0 10px 30px rgba(0,0,0,.15)}.fl-builder-ui-keyboard-shortcut-item{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;padding:12px 40px}.fl-builder-ui-keyboard-shortcut-item:nth-child(even){background:#eef2f5}.fl-builder-ui-shortcut-keycode{margin-left:auto;text-transform:uppercase;letter-spacing:2px}.fl-builder-ui-keyboard-shortcust-footer{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:center;justify-content:center;padding:10px}.dismiss-shortcut-ui{padding:10px;border-radius:4px;background:#fff;color:#000;font-size:14px;border:2px solid #fff}.dismiss-shortcut-ui:focus,.dismiss-shortcut-ui:hover{top:0;color:#000;background:#eef2f5;border:2px solid #eef2f5}.fl-color-picker-ui{width:300px}.fl-color-picker-ui.fl-color-alpha-enabled{width:238px}.fl-color-picker-ui .iris-picker{float:left;width:100%;height:224px;display:block;position:relative;border-top:1px solid rgba(0,0,0,.1)}.fl-color-picker-ui .iris-picker .iris-square-inner,.fl-color-picker-ui .iris-picker-inner{position:absolute;left:0;top:0;bottom:0;right:0}.fl-color-picker-ui .iris-picker,.iris-picker *{box-sizing:content-box}.fl-color-picker-ui .iris-error{background-color:#ffafaf}.fl-color-picker-ui .iris-picker .iris-square{width:300px;height:200px}.fl-color-picker-ui .iris-picker .iris-palette,.fl-color-picker-ui .iris-picker .iris-slider,.fl-color-picker-ui .iris-picker .iris-square-inner{height:100%;width:12.5%}.fl-color-picker-ui .iris-picker .iris-placeholder,.fl-color-picker-ui .iris-picker .iris-square{position:relative}.fl-color-picker-ui .iris-picker .iris-square-inner{width:auto;margin:0}.fl-color-picker-ui .iris-ie-9 .iris-palette,.fl-color-picker-ui .iris-ie-9 .iris-slider,.fl-color-picker-ui .iris-ie-9 .iris-square,.fl-color-picker-ui .iris-ie-9 .iris-square-inner{box-shadow:none;border-radius:0}.fl-color-picker-ui .iris-ie-9 .iris-palette,.fl-color-picker-ui .iris-ie-9 .iris-slider,.fl-color-picker-ui .iris-ie-9 .iris-square{outline:rgba(0,0,0,.1) solid 1px}.fl-color-picker-ui .iris-ie-lt9 .iris-palette,.fl-color-picker-ui .iris-ie-lt9 .iris-slider,.fl-color-picker-ui .iris-ie-lt9 .iris-square,.fl-color-picker-ui .iris-ie-lt9 .iris-square-inner{outline:#999 solid 1px}.fl-color-picker-ui .iris-ie-lt9 .iris-square .ui-slider-handle{outline:#999 solid 1px;background-color:#fff;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"}.fl-color-picker-ui .iris-ie-lt9 .iris-square .iris-square-handle{background:0 0;border:3px solid #fff;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"}.fl-color-picker-ui .iris-picker .iris-strip{box-sizing:border-box;width:calc(300px - 12px);margin:5px 6px 6px;border-radius:4px;position:relative;height:22px;transform:rotate(180deg)}.fl-color-picker-ui .iris-picker .iris-strip .ui-slider-handle{width:6px;position:absolute;right:0;top:-2px;bottom:-2px;margin:0;border-radius:3px;background:#fff;box-shadow:0 0 2px rgba(0,0,0,.5);z-index:5;cursor:ew-resize}.fl-color-picker-ui .iris-picker .iris-strip .ui-slider-handle:focus{outline:#00a0d2 solid 2px}.fl-color-picker-ui .iris-picker .iris-slider-offset{position:absolute;top:0;left:6px;right:0;bottom:0;width:auto;height:auto;background:0 0;border:none;border-radius:0;transform:rotate(180deg)}.fl-color-picker-ui .iris-picker .iris-square-handle{background:0 0;border:5px solid #999;border-radius:50%;border-color:rgba(128,128,128,.5);box-shadow:none;width:12px;height:12px;position:absolute;left:-10px;top:-10px;cursor:move;opacity:1;z-index:10}.fl-color-picker-ui .iris-picker .ui-state-focus .iris-square-handle{opacity:.8}.fl-color-picker-ui .iris-picker .iris-square-handle:hover{border-color:#999}.fl-color-picker-ui .iris-picker .iris-square-value:focus .iris-square-handle{box-shadow:0 0 2px rgba(0,0,0,.75);opacity:.8}.fl-color-picker-ui .iris-picker .iris-square-handle:hover::after{border-color:#fff}.fl-color-picker-ui .iris-picker .iris-square-handle::after{position:absolute;bottom:-4px;right:-4px;left:-4px;top:-4px;border:3px solid #f9f9f9;border-color:rgba(255,255,255,.8);border-radius:50%;content:" "}.fl-color-picker-ui .iris-picker .iris-square-value{width:8px;height:8px;position:absolute}.iris-ie-lt9 .iris-square-value,.iris-mozilla .iris-square-value{width:1px;height:1px}.fl-color-picker-wrapper{position:relative;width:48px;height:32px}.fl-color-picker{box-shadow:0 2px 4px 0 rgba(0,0,0,.12);background:#fff;border-radius:4px;width:120px;height:36px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.fl-color-picker-color{-ms-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box!important;position:relative;border-radius:4px;background-color:transparent;cursor:pointer;border:2px solid transparent;border-right:2px solid rgba(0,0,0,.1);padding:0;-ms-flex-pack:center;justify-content:center;display:-ms-flexbox;display:flex}.fl-color-picker-clear:hover,.fl-color-picker-color:hover{background:0 0;border:2px solid transparent}.fl-color-picker-clear:focus,.fl-color-picker-color.fl-color-picker-empty:focus,.fl-color-picker-color:focus{outline:0;top:0;border:2px solid #00a0d2;background:0 0}.fl-color-picker.fl-color-picker-has-reset .fl-color-picker-color:not(.fl-color-picker-empty){border-top-right-radius:0;border-bottom-right-radius:0}.fl-color-picker-icon{display:none;margin:auto}.fl-color-picker-color.fl-color-picker-empty{border-color:transparent}.fl-color-picker-color.fl-color-picker-empty svg.fl-color-picker-icon{display:block}.fl-color-picker-clear{box-sizing:border-box;position:relative;display:-ms-flexbox;display:flex;-ms-flex:0 0 36px;flex:0 0 36px;-ms-flex-pack:center;justify-content:center;padding:0;border:2px solid transparent;border-top-right-radius:4px;border-bottom-right-radius:4px;background-color:#fff;cursor:pointer}.fl-color-picker-color.fl-color-picker-empty+.fl-color-picker-clear{display:none}.fl-color-picker-ui{display:inline-block;font-family:Helvetica,Verdana,sans-serif;z-index:999999;position:fixed;overflow:hidden;padding-bottom:45px;border:1px solid rgba(0,0,0,.1);color:#999;background-color:#FAFAFA;border-radius:3px;box-shadow:0 9px 20px rgba(0,0,0,.17);transition:opacity .2s,visibility .2s;visibility:hidden;opacity:0;-webkit-transform:translate3d(0,0,0)}.fl-color-picker-ui.fl-color-picker-active{visibility:visible;opacity:1}.fl-color-picker-ui .fl-color-picker-input,.fl-color-picker-ui .fl-color-picker-input:focus{width:100%;height:30px;border:none!important;font-size:14px!important;padding:0 8px;vertical-align:middle;color:#656c6e;background-color:#fff;border-radius:0;box-shadow:none}.fl-color-picker-ui .iris-square-value{transition:none}.fl-color-picker-preset-add{position:absolute;top:8px;right:8px;width:14px;height:14px;background-color:#656c6e;border-radius:50%;cursor:pointer;transition:all .2s}.fl-color-picker-preset-add:hover{background-color:#333}.fl-color-picker-preset-add:after,.fl-color-picker-preset-add:before{content:'';display:block;position:relative;background-color:#fff}.fl-color-picker-preset-add:before{top:6px;left:3px;width:8px;height:2px}.fl-color-picker-preset-add:after{left:6px;top:1px;width:2px;height:8px}.fl-color-picker-presets{position:absolute;left:0;bottom:0;width:100%;z-index:15;overflow:auto;border-top:1px solid rgba(0,0,0,.1);background-color:#FAFAFA}.fl-color-picker-presets-list .fl-color-picker-preset:hover,.fl-color-picker-presets-toggle:hover{background-color:#EDEDED}.fl-color-picker-presets-toggle{position:relative;overflow:hidden;width:100%;height:35px;text-align:center;line-height:35px;font-size:12px;font-weight:700;cursor:pointer;transition:all .1s}.fl-color-picker-presets-close-label,.fl-color-picker-presets-open-label{position:absolute;top:50%;left:50%;visibility:hidden;color:#999;transition:all .5s;transform:translate(-50%,-50%);opacity:0;width:100%}.fl-color-picker-presets-close-label.fl-color-picker-active,.fl-color-picker-presets-open-label.fl-color-picker-active{color:#656c6e;visibility:visible;opacity:1}.fl-color-picker-presets-list{width:100%;list-style:none;margin:0;padding:0;overflow:auto}.fl-color-picker-presets-list .fl-color-picker-no-preset,.fl-color-picker-presets-list .fl-color-picker-preset{position:relative;padding:5px;font-size:12px;border-top:1px solid rgba(0,0,0,.1);transition:all .1s}.fl-color-picker-presets-list .fl-color-picker-no-preset{padding:18px 5px;text-align:center}.fl-color-picker-presets-list .fl-color-picker-preset-color{display:inline-block;width:40px;height:20px;margin-right:3px;vertical-align:middle;border:1px solid rgba(0,0,0,.1);border-radius:2px;cursor:pointer}.fl-color-picker-presets-list .fl-color-picker-preset-label{vertical-align:middle;color:#333;cursor:pointer}.fl-color-picker-presets-list .fl-color-picker-preset-remove{position:absolute;top:50%;cursor:pointer;transform:translateY(-50%)}.fl-color-picker-clear .fl-color-picker-icon-remove{right:auto;top:auto;margin:auto}.fl-color-picker-presets-list .fl-color-picker-preset-remove{right:5px}.fl-color-picker-presets-list .fl-color-picker-preset-remove:hover:after,.fl-color-picker-presets-list .fl-color-picker-preset-remove:hover:before{background-color:#333}.fl-color-picker-added{position:absolute;width:100%;top:0;left:0;right:0;bottom:35px;z-index:10;color:#fff;text-align:center;background-color:rgba(0,0,0,.8)}.fl-color-picker-added-text{position:absolute;top:50%;left:50%;width:80%;font-size:14px;color:#fff!important;transform:translate(-50%,-50%)}.fl-color-picker-icon-check{position:relative;width:50px;height:50px;margin:5px auto}.fl-color-picker-icon-check:before{content:'';display:block;position:relative;width:15px;height:30px;margin-left:14px;border:7px solid #fff;border-left:none;border-top:none;transform:rotate(45deg)}.fl-color-picker-icon-arrow-down,.fl-color-picker-icon-arrow-up{display:inline-block;position:relative;width:10px;height:10px;margin-left:5px}.fl-color-picker-icon-arrow-down:before,.fl-color-picker-icon-arrow-up:before{content:'';display:block;position:relative;width:6px;height:6px;border:2px solid #999;border-left:none;border-top:none;transform:rotate(45deg)}.fl-color-picker-icon-arrow-up{top:2px;transform:rotate(180deg)}.fl-color-picker-icon-remove{width:15px;height:15px}.fl-color-picker-icon-remove:after,.fl-color-picker-icon-remove:before{content:'';display:block;position:relative;background-color:#6f7881}.fl-color-picker-icon-remove:before{left:6px;width:2px;height:10px;margin-top:3px;transform:rotate(-45deg)}.fl-color-picker-icon-remove:after{left:6px;width:2px;height:10px;margin-top:-10px;transform:rotate(45deg)}.fl-alpha-wrap{position:absolute;width:35px;height:215px;padding:0 5px;right:4px;border-top:none}.fl-alpha-slider{height:190px;position:absolute;top:12px;width:28px}.fl-alpha-slider .ui-slider-handle{background:rgba(0,0,0,0);border-color:#aaa;border-radius:4px;border-style:solid;border-width:4px;box-shadow:0 1px 2px rgba(0,0,0,.2);-moz-box-shadow:0 1px 2px rgba(0,0,0,.2);-webkit-box-shadow:0 1px 2px rgba(0,0,0,.2);cursor:ns-resize;height:12px;left:0;opacity:.9;position:absolute;right:0;width:30px;z-index:14}.fl-alpha-slider .ui-slider-handle:before{content:" ";position:absolute;left:-2px;right:-2px;top:-3px;bottom:-3px;border:2px solid #fff;border-radius:3px}.fl-alpha-slider-offset{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAAASCAYAAAAe/ZHXAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NkNEQUQ0ODM4RUE0MTFFNEExOEJFN0E5M0VFOTg0QUQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NkNEQUQ0ODQ4RUE0MTFFNEExOEJFN0E5M0VFOTg0QUQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2Q0RBRDQ4MThFQTQxMUU0QTE4QkU3QTkzRUU5ODRBRCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2Q0RBRDQ4MjhFQTQxMUU0QTE4QkU3QTkzRUU5ODRBRCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv/r/N8AAAWYSURBVHjarFvvR3VBEN45JZGIPkREHyIiIhJJf3qUSERE9CGiDxERkcg9z9u92uucvTszz5z7xnHPj93Z2d359cxscn5+jpTS+EoiMr3/+51cZ2dn4+e29i2/u7y8RKf/pO3vc+o+n5ycoNK31+f6+jrfZ37yuG2mf3R01H3fa5N/b29vU6dP5qft0G4PDg5MGuPr/v4+jz1t27mfvN/b21P75+fHx8eZfiV/Ozs7rUJnSu/5+RlFv+m6ZJpbW1s1PnrvXl9fZ/qX89zY2LB4mfy+v7/nsdV1XltbK/dr5vnz87OcV5bJabuVlRVLBifjfX9/l/xkGtM+S0tLNXnu0szfU/P3IMn/k0678h6ddqjQFGccVL6hoCsVfsq+NZ5QtCv5rfFS41sq37W+UPhMyhxEWTetvce3NR8oewqD39qalXuGAK/WPltjajIC4x2c9Ye1f43SGcqGwRBeTZjhMNntL4pCWZMQYhE05RVl02EovRgC4RkCbUNSQAGhGB/GsKG4h6FQoigDa2i8fRBy3uLMXYIG3Vr3aZvRaCRdBYlYIMZywhBGCVhgzzOlgRuUSOvC0GMEWxOM/+EtQFh1OIIXtfwg1tRaayGjg5px0jyZKEaTle3e+AsLCygVRAh3FlEgKbReE3oYGj9EgIR00QiEgKw3ZBQbRGjBeAMtDETQmHiKDsezJNLgCTFGItZXlAgCSiQggblP+9c8SDI0lXWlFv5g3K63KZ51FOcZzthQ3LomoNHwJmKIQISI3vqzSpwIQ8liSjGMFQjDpoVgaQ6cWgvLhOC7qiAwiHrWbEg4JMSmeUrBuHoYwioOQNXmhmAcrs096s1gJCGi3hSEVU8DQxYElYHhKwUUGAa+NqOBMsSSAQJuhQhCAH4vxozExsxiihPuaIrjCVYKWlYEsjSM52G8Kxxryngl5j0j+EyGTIiED4s1Itm0ZGWxMFCLJaBAcEI6OBkmFgNBoc8Cait2ZnENE/6wQN8LJSJeSMNAjKVm+LUMAIt3PR5AQgIGp1Z5zxhE8PtXUYReYeXi4mKmOPNXBMzt2tPT07LIUtJqr66uusXEbkFnWiQ6Pj72ikrtzc1NKopuvbbj58PDwxqNHp27u7tuYWumUDV+v7+/Xyu6pc59+/DwUCsC9ujt7u6qRbt8//T01C3elbyN70fb29uZ/1FSincvLy/lPGb42tzc9IqJeHt7q61Pr2C6vr7u7tfHx8fMPhV0sLq6WhZtU0n36+uru8elPE7aLi8v1wqJPXn++fmZKYgX8ozFxcXJb0NaQTHClZT8+gBjsYdaFc+zWcUkGTCWENY66ta92oSVzo3WI6IZKGtukeyfBLFKBNAj6bUOBgaoe9wE4n04IBNkLMoC7+Skj630ZlTJMYdyMsU2T8AwpzALkVFilZgJcT2l9PCWDDSAMBSjVlJgZNk0lE1AIby0qCiCnBQNj6aBGQslZIZJ5hB6D/AzQHto5Z9Nk8tARdN4q2ExBnsyIJ311EymShyjan2rKk0zh1Ay1oQVWAZQRnkUA8RFw7TahjBnmNgMVMQrsCGZJezRtGlU0cUZ1zuaxGZPpbhApM+ZpFQqQ6xadoMtBrEKpBVo4GRXvNSxpaRixKiR+TChCYhsDwZkfFj8IkErjAHejcUI0XQrgwehhNSMHAz21E0wZ23FcCAmj8Sd/PXy2xLYLAuwRw4IMsqjFaWYOpMEhDySAPFCWyFkgAHrEcA+BNeJ4UE8HCzJPpCrerUmQIx1pWJkjqxJD8EikUo2c5aI8ZYgsAkM4WQtnHd0ns0ORgVTBghy5ISy928SGsbTMqYg523RUY8oNYG4FIYiyRyZCnFCJC87IoRAIMVOqQ7BKexxCS2hYVl9JhvlpYjnAe4MhmRPMWhhvLfXINaI9WKM0Zu0+SfAAFLE1EgfVSv7AAAAAElFTkSuQmCC) center;box-shadow:0 0 5px rgba(0,0,0,.4) inset;-moz-box-shadow:0 0 5px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 5px rgba(0,0,0,.4) inset;width:200px;height:22px;transform:rotate(-90deg);bottom:48%;left:-80px;position:absolute}.fl-alpha-text{width:30px;font-size:12px;text-align:center;color:#999;position:absolute;bottom:-5px}.fl-lightbox-wrap.fl-icon-selector{z-index:1000111}.fl-icon-selector .fl-lightbox{height:100%}.fl-icons-filter{height:auto!important;margin:0!important;position:absolute!important;right:0;top:0;padding:10px 16px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.fl-icons-filter select{vertical-align:middle;width:195px;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;color:#000;border:2px solid #e4e7ea!important;border-right:none!important;margin:0;padding:2px 10px;background:url(../img/svg/select-arrow-down-alt2.svg) center right 10px no-repeat #fff!important;-ms-flex:1 1 195px;flex:1 1 195px;border-radius:0}.fl-icons-filter input[type=text]{line-height:18px;vertical-align:middle;width:160px;-ms-flex:1 1 160px;flex:1 1 160px;border:2px solid #e4e7ea!important;border-radius:0!important;padding:2px 10px!important}.fl-icons-filter input[type=text]:focus,.fl-icons-filter select:focus{border:2px solid #00A0D2!important}.fl-icons-list{bottom:52px;left:0;overflow:auto;padding:20px;position:absolute;right:0;top:48px}.fl-icons-list::-webkit-scrollbar{background-color:#ccc;-webkit-appearance:none;width:10px}.fl-icons-list::-webkit-scrollbar-thumb{background-color:#666;border:1px solid #ccc}.fl-icons-section{text-align:center}.fl-icons-section h2{border-bottom:1px solid #dfdfdf;color:#333!important;font-family:Helvetica,Verdana,sans-serif!important;font-size:16px!important;font-weight:700!important;margin:0 0 20px!important;padding:0 0 10px!important;text-align:left}.fl-icons-list i,.fl-icons-list i:before{cursor:pointer;display:inline-block;font-size:40px;height:100px;line-height:100px;width:100px;background:0 0}.fl-icons-list i:hover{background:#fff;box-shadow:0 10px 20px rgba(0,0,0,.15);border-radius:4px}.fl-icon-selector-footer{bottom:0;left:0;position:absolute;right:0}.fl-lightbox-mask,.fl-lightbox-wrap{bottom:0;left:0;position:fixed;right:0;z-index:100010}@keyframes fl-lightbox-zoom{from{transform:scale(.4)}to{transform:scale(1)}}.fl-lightbox-wrap{display:none;overflow:auto;padding:4px;top:46px;-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0);pointer-events:none}.fl-builder-draggable-is-dragging .fl-lightbox-wrap,.fl-builder-resizable-is-resizing .fl-lightbox-wrap,.fl-lightbox,.fl-lightbox-mask{pointer-events:auto}.fl-lightbox-mask{background:#000;opacity:.7;filter:alpha(opacity=70);top:0}.fl-lightbox{background:#F5F7F9;border-radius:4px;box-shadow:rgba(0,0,0,1) 0 4px 30px;-moz-box-shadow:rgba(0,0,0,1) 0 4px 30px;-webkit-box-shadow:rgba(0,0,0,1) 0 4px 30px;position:relative;display:-ms-flexbox;display:flex;z-index:100011;transform-origin:center;animation-name:fl-lightbox-zoom}.fl-lightbox.fl-lightbox-prevent-animation{animation-duration:0s;-moz-animation-duration:0s;-webkit-animation-duration:0s;-o-animation-duration:0s}.fl-lightbox :not(i){color:#333;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:13px;line-height:16px;text-decoration:none;text-transform:none}.fl-lightbox *,.fl-lightbox :after,.fl-lightbox :before{box-sizing:content-box}.fl-lightbox .fl-nanoscroller-pane{bottom:4px;right:4px;width:8px}.fl-lightbox .fa{font-family:FontAwesome!important}.fl-lightbox .dashicons{font-family:dashicons}.fl-lightbox.ui-draggable{box-shadow:rgba(0,0,0,.2) 0 7px 30px;-moz-box-shadow:rgba(0,0,0,.2) 0 7px 30px;-webkit-box-shadow:rgba(0,0,0,.2) 0 7px 30px}.fl-lightbox-resizable{height:500px;width:380px}@media (max-width:500px){.fl-lightbox-resizable{left:0!important;right:0!important;top:0!important;height:100%!important;width:100%!important}.fl-lightbox-resizable .ui-resizable-handle{display:none!important}.fl-lightbox.ui-draggable .fl-lightbox-header{cursor:default!important}.fl-lightbox-controls{display:none}}.fl-lightbox-width-full{left:0!important;right:0!important;top:0!important;height:100%!important;width:100%!important}.fl-lightbox-width-full .fl-lightbox-header{cursor:inherit!important}.fl-lightbox-controls{position:absolute;right:10px;top:10px;z-index:5}.fl-lightbox-controls .fa{color:#bdbdbd;font-size:14px;padding:5px}.fl-lightbox-controls .fa:hover{color:#aaa;cursor:pointer}.fl-lightbox-header-wrap{background:#fff;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom:2px solid #eaeaea}.fl-lightbox-header{position:relative}.fl-lightbox-header h1{color:#333!important;font-size:20px!important;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif!important;font-weight:600!important;margin:0!important;padding:14px 34px 15px 28px!important;text-align:left!important;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;line-height:1.1}.fl-lightbox.ui-draggable .fl-lightbox-header{cursor:move}.fl-lightbox-header h1 .fl-builder-badge{margin-left:10px}.fl-lightbox-content,.fl-lightbox-content-wrap{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex:1 100%;flex:1 100%;max-width:100%}.fl-lightbox-footer{box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:end;justify-content:flex-end;-ms-flex:0 0;flex:0 0;-ms-flex-preferred-size:44px;flex-basis:44px;padding:4px;text-align:right}.fl-lightbox-footer .fl-builder-button{height:36px;margin-left:5px!important;-ms-flex:0 0 0%;flex:0 0 0%;-ms-flex-pack:center;justify-content:center}.fl-lightbox-width-slim .fl-lightbox-footer{-ms-flex-pack:stretch;justify-content:stretch;padding:4px 5px}.fl-lightbox-width-slim .fl-lightbox-footer .fl-builder-button{-ms-flex:1 1 100%;flex:1 1 100%;display:block;text-align:center}.fl-lightbox-width-slim .fl-lightbox-footer .fl-builder-button:first-child{margin-left:0!important}.fl-lightbox table,.fl-lightbox td,.fl-lightbox th,.fl-lightbox tr{border:none}.fl-builder-ui-skin--dark .fl-builder--main-menu-panel,.fl-builder-ui-skin--dark .fl-builder--preview-actions,.fl-builder-ui-skin--dark .fl-builder--search-results-panel,.fl-builder-ui-skin--dark .fl-builder-panel,.fl-builder-ui-skin--dark .fl-lightbox,body.fl-builder-ui-skin--dark .fl-builder-bar .fl-builder-bar-content{background:#23282d;color:#b4b9be;border-color:#1d1d1d}.fl-builder-ui-skin--dark .fl-builder--panel-header{background:#1d2227;color:#b4b9be;border-bottom-color:#1d1d1d;border-top-color:#1d1d1d}.fl-builder-ui-skin--dark .fl-builder-panel.fl-builder-ui-pinned .fl-builder--panel-header{border-top-color:#1d2227}.fl-builder-ui-skin--dark .fl-builder--main-menu-panel:before{border-bottom-color:#1d1d1d}.fl-builder-ui-skin--dark .fl-builder--panel-arrow polygon{fill:#1d1d1d}.fl-builder-ui-skin--dark .fl-builder-panel-search .fl-builder-panel-search-input{background:#1e2228}.fl-builder-ui-skin--dark .fl-responsive-preview-content{background:#131619}.fl-builder-ui-skin--dark .fl-form-table th{background:#23282d!important;color:#7d8690}.fl-builder-ui-skin--dark .fl-builder--preview-actions .device-icons,.fl-builder-ui-skin--dark .fl-builder-button{background:#383f46}.fl-builder-ui-skin--dark .fl-builder-button:focus{background:#131a22}.fl-builder-ui-skin--dark .fl-builder-button.fl-builder-button-primary{color:#fff!important;fill:#fff!important;background:#00A0D2}.fl-builder-ui-skin--dark .fl-builder-button.fl-builder-button-silent:focus{border:2px solid #00a0d2!important}.fl-builder-ui-skin--dark .fl-builder-content-panel--button:hover,.fl-builder-ui-skin--dark .fl-builder-content-panel-button{color:#00A0D2!important}.fl-builder-ui-skin--dark .fl-builder--menu>a:hover,.fl-builder-ui-skin--dark .fl-builder--menu>button:hover{background:#101215!important}.fl-builder-ui-skin--dark .fl-builder--menu>a:focus,.fl-builder-ui-skin--dark .fl-builder--menu>button:focus{background:#101215!important;color:#fff!important}.fl-builder-ui-skin--dark .fl-builder-bar-title{border-color:#101215}.fl-builder-ui-skin--dark .fl-builder-bar-title:hover{background-color:#181b1f}.fl-builder-simple.fl-builder-ui-skin--dark .fl-builder-bar-title:hover{background-color:transparent}.fl-builder-ui-skin--dark .fl-builder-layout-title{color:#c6cdd6}.fl-builder-ui-skin--dark .fl-builder-bar-title-caret i,.fl-builder-ui-skin--dark .fl-builder-layout-pretitle,.fl-builder-ui-skin--dark .fl-theme-builder-preview-select .fl-theme-builder-preview-select-title{color:#7d8690}.fl-builder-ui-skin--dark button.fl-builder-button.fl-builder-bar-title-caret:focus{background-color:#101215!important}.fl-builder-ui-skin--dark .fl-builder--search:before{color:rgba(162,173,184,.73)}.fl-builder-ui-skin--dark .fl-builder--search input:focus::-webkit-input-placeholder{color:rgba(162,173,184,.73)!important}.fl-builder-ui-skin--dark .fl-builder--search .search-clear{color:rgba(162,173,184,.5);background-color:#e4e4e4;background:linear-gradient(to left,#383f46,#383f46 75%,rgba(56,63,70,0))}.fl-builder-ui-skin--dark .fl-builder--menu hr{background-color:#23282d!important;border:none}.fl-builder-ui-skin--dark .fl-builder--tabs{border-color:#383f46!important}.fl-builder-ui-skin--dark .fl-builder--tabs>.is-showing,.fl-builder-ui-skin--dark .fl-builder-settings-tabs a.fl-active,.fl-builder-ui-skin--dark .fl-builder-settings-tabs-more.fl-contains-active{color:#fff!important;fill:#fff!important;background:#383f46}.fl-builder-ui-skin--dark .fl-builder--tabs>:focus{background-color:#101215!important;color:#fff!important}.fl-builder-ui-skin--dark .fl-builder--tabs>.is-showing:focus{color:#00a0d2!important}.fl-builder-ui-skin--dark .fl-builder--menu-item:hover{background:#383f46;color:#a8b3bf}.fl-builder-ui-skin--dark .fl-builder--menu * .fl-builder--menu-item-accessory,.fl-builder-ui-skin--dark .fl-builder-blocks-section-group-name{color:#7d8690}.fl-builder-ui-skin--dark .fl-builder--category-select{background:#171b1f}.fl-builder-ui-skin--dark .fl-builder--selector-display{color:#c6cdd6;background:url(../img/svg/select-arrow-down-alt2-light.svg) center right 10px no-repeat #171b1f!important}.fl-builder-ui-skin--dark .fl-builder--selector-display-label,.fl-builder-ui-skin--dark .fl-builder-panel-search-input input{border-color:#5b656f;color:#b5becb}.fl-builder-ui-skin--dark .fl-builder-panel-search-input input{background:#171b1f!important}.fl-builder-ui-skin--dark .fl-builder--selector-display-label:focus,.fl-builder-ui-skin--dark .fl-builder-panel-search-input input:focus{border-color:#00a0d2}.fl-builder-ui-skin--dark .fl-builder--group-label{color:#171b1f!important;background:#5b656f}.fl-builder-ui-skin--dark .fl-builder--category-select .fl-builder--selector-menu{border-color:#101215!important;color:#7c858e;background-color:#101215}.fl-builder-ui-skin--dark .fl-builder--category-select .fl-builder--selector-menu:before{border-bottom-color:#101215}.fl-builder-ui-skin--dark .fl-builder--menu>a,.fl-builder-ui-skin--dark .fl-builder--menu>button,.fl-builder-ui-skin--dark .fl-builder--menu>span{color:#a1adb9}.fl-builder-ui-skin--dark .fl-builder--category-select .fl-builder--selector-menu .fl-builder--menu-item:hover{background:#23282d!important;color:#a1adb9}.fl-builder-ui-skin--dark .fl-builder--category-select .fl-builder--selector-menu .fl-builder--menu-item:focus{background:#23282d!important;color:#00a0d2!important}.fl-builder-ui-skin--dark .fl-builder-panel-drag-handle{fill:#5b656f}.fl-builder-ui-skin--dark .fl-builder--template-collection-section-name,.fl-builder-ui-skin--dark .fl-builder--user-templates-section-name,.fl-builder-ui-skin--dark .fl-builder-blocks-section .fl-builder-blocks-section-title{color:#969ea7;background:#171b1f}.fl-builder-ui-skin--dark .fl-builder-blocks-section-content .fl-builder-block,.fl-builder-ui-skin--dark .fl-user-template{color:#b8c2ce}.fl-builder-ui-skin--dark .fl-builder-block:hover .fl-builder-block-content,.fl-builder-ui-skin--dark .fl-user-template:hover{background:#171b1f;color:#fff}.fl-builder-ui-skin--dark .fl-builder-block:hover i,.fl-builder-ui-skin--dark .fl-user-template:hover i{color:#6d7782!important}.fl-builder-ui-skin--dark .fl-builder-block:hover a:hover i,.fl-builder-ui-skin--dark .fl-user-template:hover a:hover i{color:#9eacbb!important}.fl-builder-ui-skin--dark .fl-builder-block .fl-builder-block-icon{fill:#b5becb}.fl-builder-ui-skin--dark .fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col,.fl-builder-ui-skin--dark .fl-builder-block:hover .fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col{background:#7d8690}.fl-builder-ui-skin--dark .fl-builder-blocks-section,.fl-builder-ui-skin--dark .fl-builder-settings-section{border-top:2px solid #171b1f}.fl-builder-ui-skin--dark .fl-user-templates{border-color:#101215}.fl-builder-ui-skin--dark .fl-builder--template-thumbnail{border-color:#393f44}.fl-builder-ui-skin--dark .fl-builder--menu a.fl-template-collection{color:#a8b3bf}.fl-builder-ui-skin--dark .fl-lightbox-header-wrap{background:#1d2227;border-bottom-color:#131a22}.fl-builder-ui-skin--dark .fl-lightbox .fl-lightbox-header h1{color:#fff!important}.fl-builder-ui-skin--dark .fl-form-table th label{color:#a8b3bf!important}.fl-builder-ui-skin--dark .fl-builder-settings-tabs{border-color:#383f46!important}.fl-builder-ui-skin--dark .fl-builder-settings-fields h3.fl-builder-settings-title{background:#1b2025}.fl-builder-ui-skin--dark h3.fl-builder-settings-title .fl-builder-settings-title-text-wrap{color:#a8b3bf;background-color:#1b2025}.fl-builder-ui-skin--dark .fl-lightbox :not(i){color:#7d8690!important}.fl-builder-ui-skin--dark .fl-builder-button{color:#c6cdd6!important;fill:#c6cdd6!important}.fl-builder-ui-skin--dark .fl-builder-content-panel--button:hover,.fl-builder-ui-skin--dark .fl-builder-content-panel-button{fill:#00A0D2!important}.fl-builder-ui-skin--dark .fl-lightbox .fl-builder-button.fl-builder-button-primary{color:#fff!important}.fl-builder-ui-skin--dark .fl-color-picker{background:#131a22}.fl-color-picker-color.fl-color-picker-empty .fl-color-picker-icon{fill:#6f7881}.fl-builder-ui-skin--dark .fl-color-picker-clear{background-color:#191d21}.fl-builder-ui-skin--dark .fl-color-picker-clear:hover{background-color:#373f46}.fl-builder-ui-skin--dark span.fl-builder-block-no-node-templates:hover{background:#1d2025}.fl-builder-ui-skin--dark .fl-builder-settings-tab-description{background:#1d2227}.fl-builder-ui-skin--dark .fl-builder-panel-search button svg .filled-shape{fill:#b5becb}.fl-builder-ui-skin--dark .fl-builder-custom-field,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=email],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=file],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=number],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=password],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=search],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=tel],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=text],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=url],.fl-builder-ui-skin--dark .fl-builder-settings-fields select,.fl-builder-ui-skin--dark .fl-builder-settings-fields textarea{background-color:#131a22!important}.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=email]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=file]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=number]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=password]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=search]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=tel]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=text]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=url]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields select:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields textarea:focus{border-color:#00a0d2!important;color:#fff!important}.fl-builder-ui-skin--dark .fl-builder-settings-fields select{background-image:url(../img/svg/select-arrow-down-alt2-light.svg)!important}.fl-builder-ui-skin--dark .fl-builder-custom-field select,.fl-builder-ui-skin--dark .fl-photo-field select{border-color:#7d8690!important}.fl-builder-ui-skin--dark .fl-field i.fl-field-responsive-toggle{color:#6b747d}.fl-builder-ui-skin--dark .fl-builder--main-menu-panel-view-title,.fl-builder-ui-skin--dark .fl-field i.fl-field-responsive-toggle:hover{color:#a8b3bf}.fl-builder-ui-skin--dark .fl-builder--saving-indicator{color:#858f99}.fl-builder-ui-skin--dark .fl-icons-list i:hover{background-color:#16191d;color:#fff}.fl-builder-ui-skin--dark .fl-color-picker-clear .fl-color-picker-icon-remove:after,.fl-builder-ui-skin--dark .fl-color-picker-clear .fl-color-picker-icon-remove:before{background:#6f7881}.fl-builder-ui-skin--dark .fl-builder--user-templates-section-content{border-color:#1d1d1d}.fl-builder-ui-skin--dark .fl-theme-builder-preview-select.fl-builder-button{background:0 0;border-right-color:#101215!important}.fl-builder-ui-skin--dark .fl-theme-builder-preview-select.fl-builder-button:hover{background:#181b1f}.fl-builder-ui-skin--dark .fl-theme-builder-preview-select .fl-theme-builder-preview-select-title span{color:#c6cdd6}.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu{background:#131a22;border-color:#353c43 #131a22 #131a22}.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu:before{border-bottom-color:#353c43}.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu>a:active,.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu>a:focus,.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu>a:hover{background:#383f46}.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu>a.fl-active,.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu>a:hover.fl-active{color:#fff!important;background:#383f46}.fl-builder-ui-skin--dark ul.as-selections{background-color:#121a23}.fl-builder-ui-skin--dark .fl-custom-query .fl-builder-settings-section{border-top:2px solid #1b2026!important}.fl-builder-ui-skin--dark .pp-preview-button{background:#23282d;border:2px solid #101215}.fl-builder-ui-skin--dark .pp-preview-button .pp-preview-button-wrap .fa{color:#b8bfc7}
1
+ .fl-color-picker-ui{width:300px}.fl-color-picker-ui.fl-color-alpha-enabled{width:334px}.fl-color-picker-ui .iris-picker{float:left;width:100%;height:224px;display:block;position:relative;border-top:1px solid rgba(0,0,0,.1)}.fl-color-picker-ui .iris-picker .iris-square-inner,.fl-color-picker-ui .iris-picker-inner{position:absolute;left:0;top:0;bottom:0;right:0}.fl-color-picker-ui .iris-picker,.iris-picker *{box-sizing:content-box}.fl-color-picker-ui .iris-error{background-color:#ffafaf}.fl-color-picker-ui .iris-picker .iris-square{width:300px;height:200px}.fl-color-picker-ui .iris-picker .iris-palette,.fl-color-picker-ui .iris-picker .iris-slider,.fl-color-picker-ui .iris-picker .iris-square-inner{height:100%;width:12.5%}.fl-color-picker-ui .iris-picker .iris-placeholder,.fl-color-picker-ui .iris-picker .iris-square{position:relative}.fl-color-picker-ui .iris-picker .iris-square-inner{width:auto;margin:0}.fl-color-picker-ui .iris-ie-9 .iris-palette,.fl-color-picker-ui .iris-ie-9 .iris-slider,.fl-color-picker-ui .iris-ie-9 .iris-square,.fl-color-picker-ui .iris-ie-9 .iris-square-inner{box-shadow:none;border-radius:0}.fl-color-picker-ui .iris-ie-9 .iris-palette,.fl-color-picker-ui .iris-ie-9 .iris-slider,.fl-color-picker-ui .iris-ie-9 .iris-square{outline:rgba(0,0,0,.1) solid 1px}.fl-color-picker-ui .iris-ie-lt9 .iris-palette,.fl-color-picker-ui .iris-ie-lt9 .iris-slider,.fl-color-picker-ui .iris-ie-lt9 .iris-square,.fl-color-picker-ui .iris-ie-lt9 .iris-square-inner{outline:#999 solid 1px}.fl-color-picker-ui .iris-ie-lt9 .iris-square .ui-slider-handle{outline:#999 solid 1px;background-color:#fff;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"}.fl-color-picker-ui .iris-ie-lt9 .iris-square .iris-square-handle{background:0 0;border:3px solid #fff;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"}.fl-color-picker-ui .iris-picker .iris-strip{box-sizing:border-box;width:calc(300px - 12px);margin:5px 6px 6px;border-radius:4px;position:relative;height:22px;transform:rotate(180deg)}.fl-color-picker-ui .iris-picker .iris-strip .ui-slider-handle{width:6px;position:absolute;right:0;top:-2px;bottom:-2px;margin:0;border-radius:3px;background:#fff;box-shadow:0 0 2px rgba(0,0,0,.5);z-index:5;cursor:ew-resize}.fl-color-picker-ui .iris-picker .iris-strip .ui-slider-handle:focus{outline:#00a0d2 solid 2px}.fl-color-picker-ui .iris-picker .iris-slider-offset{position:absolute;top:0;left:6px;right:0;bottom:0;width:auto;height:auto;background:0 0;border:none;border-radius:0;transform:rotate(180deg)}.fl-color-picker-ui .iris-picker .iris-square-handle{background:0 0;border:5px solid #999;border-radius:50%;border-color:rgba(128,128,128,.5);box-shadow:none;width:12px;height:12px;position:absolute;left:-10px;top:-10px;cursor:move;opacity:1;z-index:10}.fl-color-picker-ui .iris-picker .ui-state-focus .iris-square-handle{opacity:.8}.fl-color-picker-ui .iris-picker .iris-square-handle:hover{border-color:#999}.fl-color-picker-ui .iris-picker .iris-square-value:focus .iris-square-handle{box-shadow:0 0 2px rgba(0,0,0,.75);opacity:.8}.fl-color-picker-ui .iris-picker .iris-square-handle:hover::after{border-color:#fff}.fl-color-picker-ui .iris-picker .iris-square-handle::after{position:absolute;bottom:-4px;right:-4px;left:-4px;top:-4px;border:3px solid #f9f9f9;border-color:rgba(255,255,255,.8);border-radius:50%;content:" "}.fl-color-picker-ui .iris-picker .iris-square-value{width:0;height:0;position:absolute}.iris-ie-lt9 .iris-square-value,.iris-mozilla .iris-square-value{width:1px;height:1px}.fl-color-picker-wrapper{position:relative;width:48px;height:32px}.fl-color-picker{box-shadow:0 2px 4px 0 rgba(0,0,0,.12);background:url(../img/transp_bg.png) #fff;border-radius:4px;width:120px;height:36px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.fl-color-picker-color{-ms-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box!important;position:relative;border-radius:4px;background-color:transparent;cursor:pointer;border:2px solid transparent;padding:0;-ms-flex-pack:center;justify-content:center;display:-ms-flexbox;display:flex}.fl-color-picker-clear:hover,.fl-color-picker-color:hover{background:0 0;border:2px solid transparent}.fl-color-picker-clear:focus,.fl-color-picker-color.fl-color-picker-empty:focus,.fl-color-picker-color:focus{outline:0;top:0;border:2px solid #00a0d2;background:0 0}.fl-color-picker.fl-color-picker-has-reset .fl-color-picker-color:not(.fl-color-picker-empty){border-top-right-radius:0;border-bottom-right-radius:0}.fl-color-picker-icon{display:none;margin:auto}.fl-color-picker-color.fl-color-picker-empty{border-color:transparent}.fl-color-picker-color.fl-color-picker-empty svg.fl-color-picker-icon{display:block}.fl-color-picker-color.fl-color-picker-empty svg.fl-color-picker-icon path{fill:inherit}.fl-color-picker-clear{box-sizing:border-box;position:relative;display:-ms-flexbox;display:flex;-ms-flex:0 0 36px;flex:0 0 36px;-ms-flex-pack:center;justify-content:center;padding:0;border:2px solid transparent;fill:#A2AABE;background-color:#E7EBEF;cursor:pointer;border-radius:0 4px 4px 0}.fl-color-picker-clear:hover{fill:#6B6E75;background-color:#E7EBEF}.fl-color-picker-color.fl-color-picker-empty+.fl-color-picker-clear{display:none}.fl-color-picker-ui{display:inline-block;font-family:Helvetica,Verdana,sans-serif;z-index:1;position:fixed;overflow:hidden;padding-bottom:45px;border:1px solid rgba(0,0,0,.1);color:#999;background-color:#FAFAFA;border-radius:3px;box-shadow:0 9px 20px rgba(0,0,0,.17);transition:opacity .2s,visibility .2s;visibility:hidden;opacity:0;-webkit-transform:translate3d(0,0,0)}.fl-color-picker-ui.fl-color-picker-active{visibility:visible;opacity:1;z-index:999999}.fl-color-picker-ui .fl-color-picker-input,.fl-color-picker-ui .fl-color-picker-input:focus{width:100%;height:30px;border:none!important;font-size:14px!important;padding:0 8px;vertical-align:middle;color:#656c6e;background-color:#fff;border-radius:0;box-shadow:none}.fl-color-picker-ui .iris-square-value{transition:none}.fl-color-picker-preset-add{position:absolute;top:8px;right:8px;width:14px;height:14px;background-color:#656c6e;border-radius:50%;cursor:pointer;transition:all .2s}.fl-color-picker-preset-add:hover{background-color:#333}.fl-color-picker-preset-add:after,.fl-color-picker-preset-add:before{content:'';display:block;position:relative;background-color:#fff}.fl-color-picker-preset-add:before{top:6px;left:3px;width:8px;height:2px}.fl-color-picker-preset-add:after{left:6px;top:1px;width:2px;height:8px}.fl-color-picker-presets{position:absolute;left:0;bottom:0;width:100%;z-index:15;overflow:auto;border-top:1px solid rgba(0,0,0,.1);background-color:#FAFAFA}.fl-color-picker-presets-list .fl-color-picker-preset:hover,.fl-color-picker-presets-toggle:hover{background-color:#EDEDED}.fl-color-picker-presets-toggle{position:relative;overflow:hidden;width:100%;height:35px;text-align:center;line-height:35px;font-size:12px;font-weight:700;cursor:pointer;transition:all .1s}.fl-color-picker-presets-close-label,.fl-color-picker-presets-open-label{position:absolute;top:50%;left:50%;visibility:hidden;color:#999;transition:all .5s;transform:translate(-50%,-50%);opacity:0;width:100%}.fl-color-picker-presets-close-label.fl-color-picker-active,.fl-color-picker-presets-open-label.fl-color-picker-active{color:#656c6e;visibility:visible;opacity:1;z-index:999999}.fl-color-picker-presets-list{width:100%;list-style:none;margin:0;padding:0;overflow:auto}.fl-color-picker-presets-list .fl-color-picker-no-preset,.fl-color-picker-presets-list .fl-color-picker-preset{position:relative;padding:5px;font-size:12px;border-top:1px solid rgba(0,0,0,.1);transition:all .1s}.fl-color-picker-presets-list .fl-color-picker-no-preset{padding:18px 5px;text-align:center}.fl-color-picker-presets-list .fl-color-picker-preset-color{display:inline-block;width:40px;height:20px;margin-right:3px;vertical-align:middle;border:1px solid rgba(0,0,0,.1);border-radius:2px;cursor:pointer}.fl-color-picker-presets-list .fl-color-picker-preset-label{vertical-align:middle;color:#333;cursor:pointer}.fl-color-picker-presets-list .fl-color-picker-preset-remove{position:absolute;top:50%;cursor:pointer;transform:translateY(-50%)}.fl-color-picker-clear .fl-color-picker-icon-remove{right:auto;top:auto;margin:auto}.fl-color-picker-presets-list .fl-color-picker-preset-remove{right:5px}.fl-color-picker-presets-list .fl-color-picker-preset-remove:hover:after,.fl-color-picker-presets-list .fl-color-picker-preset-remove:hover:before{background-color:#333}.fl-color-picker-added{position:absolute;width:100%;top:0;left:0;right:0;bottom:35px;z-index:10;color:#fff;text-align:center;background-color:rgba(0,0,0,.8)}.fl-color-picker-added-text{position:absolute;top:50%;left:50%;width:80%;font-size:14px;color:#fff!important;transform:translate(-50%,-50%)}.fl-color-picker-icon-check{position:relative;width:50px;height:50px;margin:5px auto}.fl-color-picker-icon-check:before{content:'';display:block;position:relative;width:15px;height:30px;margin-left:14px;border:7px solid #fff;border-left:none;border-top:none;transform:rotate(45deg)}.fl-color-picker-icon-arrow-down,.fl-color-picker-icon-arrow-up{display:inline-block;position:relative;width:10px;height:10px;margin-left:5px}.fl-color-picker-icon-arrow-down:before,.fl-color-picker-icon-arrow-up:before{content:'';display:block;position:relative;width:6px;height:6px;border:2px solid #999;border-left:none;border-top:none;transform:rotate(45deg)}.fl-color-picker-icon-arrow-up{top:2px;transform:rotate(180deg)}.fl-color-picker-icon-remove{width:15px;height:15px}.fl-color-picker-icon-remove:after,.fl-color-picker-icon-remove:before{content:'';display:block;position:relative;background-color:#6f7881}.fl-color-picker-icon-remove:before{left:6px;width:2px;height:10px;margin-top:3px;transform:rotate(-45deg)}.fl-color-picker-icon-remove:after{left:6px;width:2px;height:10px;margin-top:-10px;transform:rotate(45deg)}.fl-alpha-wrap{position:absolute;width:32px;height:215px;padding:0 5px;right:4px;border-top:none}.fl-alpha-slider{height:190px;position:absolute;top:12px;width:28px}.fl-alpha-slider .ui-slider-handle{background:rgba(0,0,0,0);border-color:#aaa;border-radius:4px;border-style:solid;border-width:4px;box-shadow:0 1px 2px rgba(0,0,0,.2);-moz-box-shadow:0 1px 2px rgba(0,0,0,.2);-webkit-box-shadow:0 1px 2px rgba(0,0,0,.2);cursor:ns-resize;height:12px;left:0;opacity:.9;position:absolute;right:0;width:30px;z-index:14}.fl-alpha-slider .ui-slider-handle:before{content:" ";position:absolute;left:-2px;right:-2px;top:-3px;bottom:-3px;border:2px solid #fff;border-radius:3px}.fl-theme-builder-preview-select-title i:before,body .fl-theme-builder-preview-select .fa-caret-down i:before,body .fl-theme-builder-preview-select-item-title i:before{content:"\f078"}.fl-alpha-slider-offset{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAAASCAYAAAAe/ZHXAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NkNEQUQ0ODM4RUE0MTFFNEExOEJFN0E5M0VFOTg0QUQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NkNEQUQ0ODQ4RUE0MTFFNEExOEJFN0E5M0VFOTg0QUQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2Q0RBRDQ4MThFQTQxMUU0QTE4QkU3QTkzRUU5ODRBRCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2Q0RBRDQ4MjhFQTQxMUU0QTE4QkU3QTkzRUU5ODRBRCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv/r/N8AAAWYSURBVHjarFvvR3VBEN45JZGIPkREHyIiIhJJf3qUSERE9CGiDxERkcg9z9u92uucvTszz5z7xnHPj93Z2d359cxscn5+jpTS+EoiMr3/+51cZ2dn4+e29i2/u7y8RKf/pO3vc+o+n5ycoNK31+f6+jrfZ37yuG2mf3R01H3fa5N/b29vU6dP5qft0G4PDg5MGuPr/v4+jz1t27mfvN/b21P75+fHx8eZfiV/Ozs7rUJnSu/5+RlFv+m6ZJpbW1s1PnrvXl9fZ/qX89zY2LB4mfy+v7/nsdV1XltbK/dr5vnz87OcV5bJabuVlRVLBifjfX9/l/xkGtM+S0tLNXnu0szfU/P3IMn/k0678h6ddqjQFGccVL6hoCsVfsq+NZ5QtCv5rfFS41sq37W+UPhMyhxEWTetvce3NR8oewqD39qalXuGAK/WPltjajIC4x2c9Ye1f43SGcqGwRBeTZjhMNntL4pCWZMQYhE05RVl02EovRgC4RkCbUNSQAGhGB/GsKG4h6FQoigDa2i8fRBy3uLMXYIG3Vr3aZvRaCRdBYlYIMZywhBGCVhgzzOlgRuUSOvC0GMEWxOM/+EtQFh1OIIXtfwg1tRaayGjg5px0jyZKEaTle3e+AsLCygVRAh3FlEgKbReE3oYGj9EgIR00QiEgKw3ZBQbRGjBeAMtDETQmHiKDsezJNLgCTFGItZXlAgCSiQggblP+9c8SDI0lXWlFv5g3K63KZ51FOcZzthQ3LomoNHwJmKIQISI3vqzSpwIQ8liSjGMFQjDpoVgaQ6cWgvLhOC7qiAwiHrWbEg4JMSmeUrBuHoYwioOQNXmhmAcrs096s1gJCGi3hSEVU8DQxYElYHhKwUUGAa+NqOBMsSSAQJuhQhCAH4vxozExsxiihPuaIrjCVYKWlYEsjSM52G8Kxxryngl5j0j+EyGTIiED4s1Itm0ZGWxMFCLJaBAcEI6OBkmFgNBoc8Cait2ZnENE/6wQN8LJSJeSMNAjKVm+LUMAIt3PR5AQgIGp1Z5zxhE8PtXUYReYeXi4mKmOPNXBMzt2tPT07LIUtJqr66uusXEbkFnWiQ6Pj72ikrtzc1NKopuvbbj58PDwxqNHp27u7tuYWumUDV+v7+/Xyu6pc59+/DwUCsC9ujt7u6qRbt8//T01C3elbyN70fb29uZ/1FSincvLy/lPGb42tzc9IqJeHt7q61Pr2C6vr7u7tfHx8fMPhV0sLq6WhZtU0n36+uru8elPE7aLi8v1wqJPXn++fmZKYgX8ozFxcXJb0NaQTHClZT8+gBjsYdaFc+zWcUkGTCWENY66ta92oSVzo3WI6IZKGtukeyfBLFKBNAj6bUOBgaoe9wE4n04IBNkLMoC7+Skj630ZlTJMYdyMsU2T8AwpzALkVFilZgJcT2l9PCWDDSAMBSjVlJgZNk0lE1AIby0qCiCnBQNj6aBGQslZIZJ5hB6D/AzQHto5Z9Nk8tARdN4q2ExBnsyIJ311EymShyjan2rKk0zh1Ay1oQVWAZQRnkUA8RFw7TahjBnmNgMVMQrsCGZJezRtGlU0cUZ1zuaxGZPpbhApM+ZpFQqQ6xadoMtBrEKpBVo4GRXvNSxpaRixKiR+TChCYhsDwZkfFj8IkErjAHejcUI0XQrgwehhNSMHAz21E0wZ23FcCAmj8Sd/PXy2xLYLAuwRw4IMsqjFaWYOpMEhDySAPFCWyFkgAHrEcA+BNeJ4UE8HCzJPpCrerUmQIx1pWJkjqxJD8EikUo2c5aI8ZYgsAkM4WQtnHd0ns0ORgVTBghy5ISy928SGsbTMqYg523RUY8oNYG4FIYiyRyZCnFCJC87IoRAIMVOqQ7BKexxCS2hYVl9JhvlpYjnAe4MhmRPMWhhvLfXINaI9WKM0Zu0+SfAAFLE1EgfVSv7AAAAAElFTkSuQmCC) center;box-shadow:0 0 5px rgba(0,0,0,.4) inset;-moz-box-shadow:0 0 5px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 5px rgba(0,0,0,.4) inset;width:200px;height:22px;transform:rotate(-90deg);bottom:48%;left:-80px;position:absolute}.fl-alpha-text{width:30px;font-size:12px;text-align:center;color:#999;position:absolute;bottom:-5px}.fl-lightbox-mask,.fl-lightbox-wrap{bottom:0;left:0;position:fixed;right:0;z-index:100010}@keyframes fl-lightbox-zoom{from{transform:scale(.4)}to{transform:scale(1)}}.fl-lightbox-wrap{display:none;overflow:auto;padding:0;top:43px;-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0);pointer-events:none}.fl-builder-draggable-is-dragging .fl-lightbox-wrap,.fl-builder-resizable-is-resizing .fl-lightbox-wrap,.fl-lightbox,.fl-lightbox-mask{pointer-events:auto}.fl-lightbox-mask{background:#000;opacity:.7;filter:alpha(opacity=70);top:0}.fl-lightbox{background:#F5F7F9;border-radius:4px;box-shadow:rgba(0,0,0,1) 0 4px 30px;-moz-box-shadow:rgba(0,0,0,1) 0 4px 30px;-webkit-box-shadow:rgba(0,0,0,1) 0 4px 30px;position:relative;display:-ms-flexbox;display:flex;z-index:100011;transform-origin:center;animation-name:fl-lightbox-zoom;animation-duration:.25s}.fl-lightbox.fl-lightbox-prevent-animation{animation-duration:0s;-moz-animation-duration:0s;-webkit-animation-duration:0s;-o-animation-duration:0s}.fl-lightbox :not(i){color:#333;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:12px;line-height:14px;text-decoration:none;text-transform:none}.fl-lightbox *,.fl-lightbox :after,.fl-lightbox :before{box-sizing:content-box}#fl-ui-root .fl-nanoscroller-pane,.fl-builder--content-library-panel .fl-nanoscroller-pane,.fl-lightbox .fl-nanoscroller-pane{bottom:2px;right:2px;width:6px}.fl-nanoscroller>.fl-nanoscroller-pane>.fl-nanoscroller-slider{background-color:#bac0ca;transition-property:height,background-color;transition-duration:.25s}#wpadminbar,html{transition-duration:.35s}.fl-nanoscroller>.fl-nanoscroller-pane>.fl-nanoscroller-slider:hover{background-color:#c8cdd4}.fl-nanoscroller>.fl-nanoscroller-pane.active>.fl-nanoscroller-slider{background-color:#029fd2}.fl-lightbox .fa{font-family:FontAwesome!important}.fl-lightbox .dashicons{font-family:dashicons}.fl-lightbox.ui-draggable{box-shadow:rgba(0,0,0,.2) 0 7px 30px;-moz-box-shadow:rgba(0,0,0,.2) 0 7px 30px;-webkit-box-shadow:rgba(0,0,0,.2) 0 7px 30px}#wpadminbar,.fl-builder-bar.is-hidden{pointer-events:none}.fl-lightbox-resizable{height:500px;width:380px}@media (max-width:500px){.fl-lightbox-resizable{left:0!important;right:0!important;top:0!important;height:100%!important;width:100%!important}.fl-lightbox-resizable .ui-resizable-handle{display:none!important}.fl-lightbox.ui-draggable .fl-lightbox-header{cursor:default!important}.fl-lightbox-controls{display:none}}.fl-lightbox-width-full{left:0!important;right:0!important;top:0!important;height:100%!important;width:100%!important}.fl-lightbox-width-full .fl-lightbox-header{cursor:inherit!important}.fl-lightbox-controls{position:absolute;right:10px;top:10px;z-index:5}.fl-lightbox-controls .fa{color:#bdbdbd;font-size:14px;padding:5px}.fl-lightbox-controls .fa:hover{color:#aaa;cursor:pointer}.fl-lightbox-header-wrap{border-top-left-radius:4px;border-top-right-radius:4px}.fl-lightbox-header{position:relative}.fl-lightbox-header h1{color:#333!important;font-size:16px!important;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif!important;font-weight:400!important;margin:0!important;padding:14px 34px 15px 28px!important;text-align:left!important;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;line-height:1}.fl-lightbox.ui-draggable .fl-lightbox-header{cursor:move}.fl-lightbox-header h1 .fl-builder-badge{margin-left:10px;color:#fff;background-color:#F7A408}.fl-lightbox-content,.fl-lightbox-content-wrap{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex:1 100%;flex:1 100%;max-width:100%}.fl-lightbox-footer{box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:end;justify-content:flex-end;-ms-flex:0 0;flex:0 0;-ms-flex-preferred-size:44px;flex-basis:44px;padding:4px;text-align:right}.fl-lightbox-footer .fl-builder-button{height:36px;margin-left:5px!important;-ms-flex:0 0 0%;flex:0 0 0%;-ms-flex-pack:center;justify-content:center}.fl-lightbox-width-slim .fl-lightbox-footer{-ms-flex-pack:stretch;justify-content:stretch;padding:4px 5px}.fl-lightbox-width-slim .fl-lightbox-footer .fl-builder-button{-ms-flex:1 1 100%;flex:1 1 100%;display:block;text-align:center}.fl-lightbox-width-slim .fl-lightbox-footer .fl-builder-button:first-child{margin-left:0!important}.fl-lightbox table,.fl-lightbox td,.fl-lightbox th,.fl-lightbox tr{border:none}.fl-lightbox-wrap.fl-icon-selector{z-index:1000111}.fl-icon-selector .fl-lightbox{height:100%}.fl-icons-filter{height:auto!important;margin:0!important;position:absolute!important;right:0;top:0;padding:10px 16px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.fl-icons-filter select{vertical-align:middle;width:195px;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;color:#000;border:2px solid #e4e7ea!important;border-right:none!important;margin:0;padding:2px 10px;background:url(../img/svg/select-arrow-down-alt2.svg) center right 10px no-repeat #fff!important;-ms-flex:1 1 195px;flex:1 1 195px;border-radius:0}.fl-icons-filter input[type=text]{line-height:18px;vertical-align:middle;width:160px;-ms-flex:1 1 160px;flex:1 1 160px;border:2px solid #e4e7ea!important;border-radius:0!important;padding:2px 10px!important}.fl-icons-filter input[type=text]:focus,.fl-icons-filter select:focus{border:2px solid #00A0D2!important}.fl-icons-list{bottom:52px;left:0;overflow:auto;padding:20px;position:absolute;right:0;top:48px}.fl-icons-list::-webkit-scrollbar{background-color:#ccc;-webkit-appearance:none;width:10px}.fl-icons-list::-webkit-scrollbar-thumb{background-color:#666;border:1px solid #ccc}.fl-icons-section{text-align:center}.fl-icons-section h2{border-bottom:1px solid #dfdfdf;color:#333!important;font-family:Helvetica,Verdana,sans-serif!important;font-size:16px!important;font-weight:700!important;margin:0 0 20px!important;padding:0 0 10px!important;text-align:left}.fl-icons-list i,.fl-icons-list i:before{cursor:pointer;display:inline-block;font-size:40px;height:100px;line-height:100px;width:100px;background:0 0}.fl-icons-list i:hover{background:#fff;box-shadow:0 10px 20px rgba(0,0,0,.15);border-radius:4px}.fl-icon-selector-footer{bottom:0;left:0;position:absolute;right:0}html{transition-property:margin}html.fl-builder-is-showing-toolbar{margin-top:calc(44px + 1px)!important}.fl-builder-edit body{position:static!important}.fl-builder-edit:after,.fl-builder-edit:before{z-index:0!important}.fl-builder-edit .fl-builder-content{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}#wpadminbar{transition-property:transform,opacity;transform-origin:bottom;transform-style:preserve-3d;transform:rotateX(89deg) translateY(46px);opacity:0;will-change:transform}html.fl-builder-show-admin-bar{margin-top:32px}html.fl-builder-show-admin-bar #wpadminbar{transform:rotateX(0) translateY(0);pointer-events:auto;opacity:1}@media screen and (max-width:782px){html.fl-builder-show-admin-bar{margin-top:46px}}.fl-clear{clear:both}.screen-reader-text{position:absolute;left:-1000em;top:-1000em;height:1px;width:1px;overflow:hidden}.fl-builder-loading{background:url(../img/ajax-loader.svg) center center no-repeat rgba(240,240,240,.8);bottom:0;display:none;left:0;position:fixed;right:0;text-align:center;top:0;z-index:12000000}.fl-builder-settings .fl-builder-loading{background:url(../img/ajax-loader.svg) center center no-repeat rgba(255,255,255,.8);display:block;position:absolute}.fl-field-loader{color:#B3B3B3!important;font-style:italic}.fl-builder-node-loading{opacity:.35!important}.fl-builder-node-loading-placeholder{background:url(../img/ajax-loader.svg) center center no-repeat;height:50px}.fl-col-group-has-child-loading{display:-ms-flexbox;display:flex}.fl-col-group-has-child-loading>.fl-builder-node-loading-placeholder{width:50px}.fl-node-hidden{display:none}.fl-builder-edit .fl-node-hidden{display:block}html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-visible-desktop,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-visible-desktop-medium,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-visible-medium,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-visible-medium-mobile,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-visible-mobile{display:block!important}html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-col-group-equal-height .fl-col.fl-visible-desktop,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-col-group-equal-height .fl-col.fl-visible-desktop-medium,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-col-group-equal-height .fl-col.fl-visible-medium,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-col-group-equal-height .fl-col.fl-visible-medium-mobile,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-col-group-equal-height .fl-col.fl-visible-mobile{display:-ms-flexbox!important;display:flex!important}.fl-responsive-preview-enabled body{overflow:hidden!important}.fl-responsive-preview-mask{background:#F7F7F7;bottom:0;left:0;position:fixed;right:0;top:0;z-index:99999}.fl-responsive-preview{bottom:0;left:0;position:fixed;right:0;top:0;margin-top:50px;z-index:100000}.fl-builder-preview .fl-responsive-preview{margin:0!important}.fl-responsive-preview-content{background:#F5F7F9;padding:20px 20px 45px;overflow:scroll;position:absolute;top:45px;right:0;bottom:0;left:0}.fl-responsive-preview-content .fl-builder-content-editing{overflow:visible!important}.fl-responsive-preview-message{background:#F5F7F9;color:#b3b3b3;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif!important;font-size:14px;font-weight:400;padding:15px;text-align:center;position:absolute;top:0;left:0;right:0;z-index:999999}.fl-responsive-preview-message span{display:inline-block;margin-right:8px}.fl-responsive-preview-message .fl-builder-button{display:inline-block;margin-left:2px;padding:0 10px}.fl-responsive-preview-message .fl-builder-button i{font-size:14px;height:14px;width:14px}.fl-responsive-preview .fl-builder-content{box-shadow:0 0 8px rgba(0,0,0,.2);margin-left:auto;margin-right:auto;max-width:100%;overflow:visible;position:relative}#fl-builder-preview-frame,#fl-builder-preview-mask{bottom:0;height:100%;position:fixed;top:0;width:100%;right:0}.fl-responsive-preview .fl-block-col-resize{display:none}.fl-builder-button,body .fl-builder-bar .fl-builder-bar-content{display:-ms-flexbox;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif!important}#fl-builder-preview-mask{background:url(../img/ajax-loader.svg) center center no-repeat #F7F7F7;left:0;z-index:999999}#fl-builder-preview-frame{left:50%;transform:translateX(-50%);-moz-transform:translateX(-50%);-webkit-transform:translateX(-50%);z-index:1000000}body button[class*=fl-builder],body button[class*=fl-builder]:focus,body button[class*=fl-builder]:hover{box-shadow:none;max-height:none;max-width:none;text-decoration:none;text-indent:0;text-shadow:none;text-transform:none}.fl-builder-button{-webkit-appearance:none;-ms-flex-align:center;align-items:center;background:#e7ebef;border:2px solid transparent;border-radius:3px;-webkit-border-radius:3px;box-sizing:border-box!important;-webkit-box-sizing:border-box!important;-moz-box-sizing:border-box!important;color:#676F7A!important;cursor:pointer;display:flex;fill:#676F7A!important;font-size:14px!important;font-style:normal!important;font-weight:500!important;height:33px;letter-spacing:normal!important;line-height:1!important;margin:0;padding:0 12px;text-align:center;transition-property:background-color,width;transition-duration:.2s;white-space:nowrap;width:auto;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fl-builder--search-results-panel,.fl-builder-bar,.fl-builder-panel{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}.fl-builder-button:hover{background:#dadfe5;color:#222;border:2px solid transparent!important}.fl-builder-button:active{background:#DCDCDC}button.fl-builder-button:focus{position:static;top:auto;outline:0;background:#E4E7EA;border:2px solid #00A0D0!important}.fl-builder-bar .fl-builder-button{height:auto}.fl-builder-button-primary,body.fl-builder--layout-has-drafted-changes .fl-builder-done-button{background:#00A0D2;color:#fff!important;text-decoration:none;border:2px solid transparent!important}.fl-builder-button.fl-builder-button-primary:focus,body.fl-builder--layout-has-drafted-changes .fl-builder-button.fl-builder-done-button:focus{background:#00A0D2;border:2px solid #ffc217!important}.fl-builder-button-primary:hover,body.fl-builder--layout-has-drafted-changes .fl-builder-done-button:hover{background:#0197C6;color:#fff!important}.fl-builder-button-primary:active,body.fl-builder--layout-has-drafted-changes .fl-builder-done-button:active{background:#0484AC}.fl-builder-button-large{height:30px}.fl-builder-button-small{font-size:11px!important;line-height:1!important}.fl-builder-help-button{color:#b3b3b3;font-size:16px!important}.fl-builder-help-button i{position:relative;top:-1px}.fl-builder-help-button:hover{color:#666}.fl-builder-publish-button{line-height:45px!important}.fl-builder-content-panel-button,.fl-builder-content-panel-button:hover{fill:#00A0D2!important;font-size:30px!important;padding-bottom:4px}.fl-builder-button-silent,.fl-builder-button-silent:hover{padding:0 12px;background:0 0!important;border:2px solid transparent!important;box-shadow:none!important}.fl-builder-done-button,.fl-builder-done-button:hover{font-weight:600}.fl-field .fl-builder-button{display:inline-block;height:auto;padding:11px 12px;vertical-align:middle;box-shadow:0 2px 4px 0 rgba(0,0,0,.12)}.fl-builder-badge{background:#333;border-radius:2px;color:#fff!important;display:inline;font-size:11px!important;font-weight:400;letter-spacing:1px;margin-left:2px;padding:2px 4px;vertical-align:middle}.fl-builder-badge-global{background:#ff9600;transform:translateY(0);transition-duration:.25s;transition-property:transform}.fl-builder-blocks-node-template .fl-builder-badge-global{position:absolute;right:0;top:0}.fl-builder-block:hover .fl-builder-badge-global{display:none}.fl-builder-bar{left:0;position:fixed;right:0;top:0;z-index:999999;user-select:none;transition-property:transform opacity;transition-duration:.35s;transform-style:preserve-3d;perspective:1100px}.fl-builder-bar.is-hidden .fl-builder-bar-content{transform:translateY(-100%) rotateX(90deg)}body .fl-builder-bar .fl-builder-bar-content{display:flex;box-sizing:border-box;background:#fff;border-bottom:1px solid #eceef1;color:#999;font-size:14px!important;height:calc(44px + 1px);transition-property:background-color,opacity,transform;transition-duration:.35s;pointer-events:auto}.fl-builder-draggable-is-dragging .fl-builder-content,.fl-builder-draggable-is-dragging .fl-builder-panel .fl-lightbox,.fl-builder-resizable-is-resizing .fl-builder-content,.fl-builder-resizable-is-resizing .fl-builder-panel .fl-lightbox,body .fl-builder-bar .fl-builder-bar-content.is-muted{pointer-events:none}body .fl-builder-bar .fl-builder-bar-content.is-muted>:not(.fl-builder-publish-actions){-webkit-filter:saturate(20%) blur(1px);filter:saturate(20%) blur(1px);opacity:.4}.fl-builder-bar-title{box-sizing:border-box;color:#333;display:-ms-flexbox;display:flex;-ms-flex:0 0 380px;flex:0 0 380px;max-width:380px;border-right:1px solid #eceef1;cursor:pointer}.fl-builder-bar-title:hover{background:#fff}.fl-builder-bar-title.is-showing-menu .fl-builder-bar-title-caret>svg{transform:rotate(180deg)}.fl-builder-simple .fl-builder-bar-title{cursor:auto}.fl-builder-simple .fl-builder-bar-title:hover{cursor:auto;background:0 0}.fl-builder-bar-title span{vertical-align:middle}.fl-builder-bar-title-icon{box-sizing:border-box;background:0 0;-ms-flex:0 0 46px;flex:0 0 46px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:4px}.fl-builder-bar-title-icon img{max-width:100%!important;height:auto!important}.fl-builder-bar-title.fl-builder-bar-title-no-icon{padding-left:12px}.fl-builder-bar-title-area{box-sizing:border-box;-ms-flex:1 1 100%;flex:1 1 100%;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow:hidden;padding:4px}.fl-builder-layout-title,.fl-theme-builder-preview-select .fl-theme-builder-preview-select-title span{font-size:16px;font-weight:400;line-height:1.3;color:#161B20;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.fl-builder-bar-title-caret,.fl-builder-layout-pretitle,.fl-theme-builder-preview-select .fl-theme-builder-preview-select-title{font-size:12px;font-weight:500;line-height:1.3;color:#656d77;text-align:left;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.fl-builder-bar-title-caret i,.fl-theme-builder-preview-select-title i{color:inherit!important;font-size:14px}.fl-builder-bar-title-caret{margin-left:auto!important;-ms-flex:0 0 46px;flex:0 0 46px}.fl-theme-builder-preview-select-title i{padding:12px}.fl-theme-builder-preview-select.fl-builder-button{position:relative;border-radius:0;background:0 0;min-width:0;display:-ms-flexbox;display:flex;-ms-flex:0 0 360px;flex:0 0 360px;max-width:360px;margin:0!important;padding:4px 10px;border:none!important;border-right:2px solid #d5dadd!important;box-shadow:none}.fl-theme-builder-preview-select.fl-builder-button:hover{border:none!important;border-right:2px solid #d5dadd!important}.fl-theme-builder-preview-select .fl-theme-builder-preview-select-title{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-pack:end;justify-content:flex-end;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.fl-theme-builder-preview-select-title div{-ms-flex:1;flex:1}.fl-theme-builder-preview-select .fl-theme-builder-preview-select-title span{display:block}.fl-theme-builder-preview-select-open .fl-theme-builder-preview-select-items{position:absolute;top:calc(48px + 10px);left:10px;width:calc(100% - 20px)!important;background:#fff;border-radius:4px;border:2px solid #D5DADD;border-top:3px solid #00a0d2;box-shadow:0 15px 45px 8px rgba(0,0,0,.04);margin:0!important;padding:0;z-index:-1;font-size:16px;overflow:visible;height:auto!important;max-height:calc(100vh - 66px);min-height:300px;display:-ms-flexbox!important;display:flex!important;-ms-flex-direction:column;flex-direction:column}.fl-theme-builder-preview-select-item{padding:4px 0!important;border-bottom:none!important;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;text-align:initial}.fl-theme-builder-preview-select-item:hover{text-decoration:none;color:#111;background:0 0!important}body .fl-theme-builder-preview-select .fa-caret-down{float:none}body .fl-theme-builder-preview-select-item-title{padding:10px 15px;color:#222;font-size:14px}body .fl-theme-builder-preview-select-item-children{overflow:auto}body .fl-theme-builder-preview-select-item-child{overflow:hidden;text-overflow:ellipsis;line-height:1.1;margin:0 10px;border:2px solid transparent;border-radius:4px;padding:8px 10px 10px;font-size:14px;font-weight:400;color:#222}body .fl-theme-builder-preview-select-item-child:hover{background:#e6eaed!important}.fl-theme-builder-preview-select-item .fa-caret-down{color:#606D77}.fl-builder-bar-actions{display:-ms-flexbox;display:flex;-ms-flex-direction:row-reverse;flex-direction:row-reverse;-ms-flex:1 1 100%;flex:1 1 100%;padding:4px}.fl-builder-bar .fl-builder-button{margin:0 0 0 4px}.fl-builder-bar-actions .fl-builder-button:last-child{margin:0}.fl-builder-bar-actions:after{clear:both}.fl-builder-bar .fl-builder-content-panel-button{-ms-flex-align:baseline!important;align-items:baseline!important;padding-top:1px;font-weight:400}.fl-builder-content-panel-button svg{transition-property:transform;transition-duration:.25s;transform:rotate(0) scale(1);transform-origin:center}.fl-builder-content-panel-is-showing .fl-builder-content-panel-button svg{transform:rotate(135deg) scale(1.1) translate(.5px,-.5px)}.fl-builder--saving-indicator{cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-item-align:center;align-self:center;padding:0 10px;font-size:12px;font-style:italic;color:#676f7a;-ms-flex-align:center;align-items:center;line-height:1.2;min-width:180px;-ms-flex-pack:end;justify-content:flex-end}.fl-builder--saving-indicator:hover{color:#676f7a}.fl-builder--saving-indicator .fa-question-circle{font-size:13px;margin:3px 0 3px 5px}.fl-builder-buy-button,.fl-builder-feedback-button,.fl-builder-upgrade-button{background:#F7A407;color:#fff!important;text-decoration:none}.fl-builder-buy-button i.fa-external-link-alt,.fl-builder-feedback-button i.fa-external-link-alt,.fl-builder-upgrade-button i.fa-external-link-alt{color:#FFC733;margin:0 0 0 6px}.fl-builder-buy-button:hover,.fl-builder-feedback-button:hover,.fl-builder-upgrade-button:hover{background:#EE8E0D;color:#fff!important}@media (max-width:980px){.fl-builder--main-menu-panel{width:calc(100% - 20px)!important}.fl-builder--main-menu-panel:before{right:auto;left:20px}.fl-builder-bar-title,.fl-theme-builder-preview-select{-ms-flex:1 .5 380px!important;flex:1 .5 380px!important}}@media (max-width:620px){.fl-theme-builder-preview-select.fl-builder-button{display:none}}@media (max-width:500px){#fl-builder-toggle-notifications,.fl-builder--main-menu-panel:before,.fl-builder--panel-arrow,.fl-builder-bar-title-area,.fl-builder-panel-drag-handle,.fl-builder-panel:before{display:none}.fl-builder--main-menu-panel,.fl-builder-panel{width:auto!important;top:44px!important;left:0!important;right:0!important;bottom:0!important;border-radius:0!important;box-shadow:none!important}.fl-builder--main-menu-panel{border-left:transparent!important;border-right:transparent!important;border-bottom:transparent!important;max-height:calc(100% - 44px)!important}.fl-builder-bar-title{-ms-flex:0 0 80px!important;flex:0 0 80px!important}.fl-builder-bar-title-caret{padding-left:0;padding-right:0;max-width:24px}.fl-builder-bar-actions{max-width:calc(100% - 80px);overflow:hidden}.fl-builder--panel-header{border-radius:0!important;cursor:default!important}.fl-builder--panel-header .fl-builder--tabs{cursor:default!important}.fl-builder-publish-actions{width:100%!important;padding-left:4px!important}.fl-builder-bar-actions .fl-builder-button{padding:0 8px!important}}.fl-builder--preview-actions{display:none;position:fixed;top:4px;left:4px;z-index:10000001;padding:4px;-ms-flex-pack:center;justify-content:center;background:#fff;border-radius:4px}.fl-builder-preview .fl-builder--preview-actions{display:-ms-flexbox;display:flex}.fl-builder--preview-actions .device-icons{color:#555;background:#e4e4e4;border:none!important;-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;text-decoration:none;font-size:14px!important;line-height:1!important;margin:0 4px 0 0;padding:0 6px;cursor:pointer;-webkit-border-radius:3px;-webkit-appearance:none;border-radius:3px}.fl-builder--preview-actions .device-icons i{margin:0 6px}@keyframes fl-builder-ui-pin-zone-pulse{0%,100%{opacity:1;filter:alpha( opacity=1 )}50%{opacity:.5;filter:alpha( opacity=35 )}}.fl-builder-ui-pin-zone{animation:fl-builder-ui-pin-zone-pulse 2s infinite;transition:width .3s ease;background:rgba(0,160,210,.5);bottom:0;top:0;position:fixed;width:35px;z-index:100001}.fl-builder-ui-show-pin-zone-left .fl-builder-ui-pin-zone-left,.fl-builder-ui-show-pin-zone-right .fl-builder-ui-pin-zone-right{width:75px}.fl-builder-ui-pin-zone-left{left:0}.fl-builder-ui-pin-zone-right{right:0}.fl-builder-content-panel-pin-zone .fl-builder-content-panel-button{display:-ms-flexbox!important;display:flex!important;background:rgba(0,160,210,.5)!important;padding:2px 4px;width:80px;animation:fl-builder-ui-pin-zone-pulse 2s infinite}.fl-builder-content-panel-pin-zone .fl-builder-content-panel-button svg{display:none}.fl-builder-content-panel-pin-zone-hover .fl-builder-content-panel-button{width:120px}.fl-builder-content-panel-pin-zone-hover .fl-builder-content-panel-button svg{display:none!important;width:100%;transform:none!important;fill:#00A0D2!important;border-radius:3px}.fl-builder-ui-is-pinned .fl-builder-content-panel-button,.fl-builder-ui-pinned-container .fl-lightbox-controls{display:none}.fl-builder-content-panel-pin-zone .fl-builder-done-button{-webkit-filter:grayscale(100%);filter:grayscale(100%)}.fl-builder-panel.fl-builder-ui-pinned{top:45px!important;bottom:0!important;height:auto!important;border-radius:0;border:none;box-shadow:none;animation-duration:0s;-moz-animation-duration:0s;-webkit-animation-duration:0s;-o-animation-duration:0s;z-index:11}.fl-builder-panel.fl-builder-ui-pinned-right{left:auto!important;right:0;border-left:1px solid #eceef1}.fl-builder-panel.fl-builder-ui-pinned-left{left:0;right:auto;border-right:1px solid #eceef1}.fl-builder-panel.fl-builder-ui-pinned .fl-builder--panel-header{border-radius:0!important}.fl-builder-ui-pinned-container .fl-lightbox-wrap{position:absolute;z-index:11}.fl-builder-ui-pinned-container .fl-lightbox{position:absolute;top:0;bottom:0;left:0;right:0;width:auto!important;height:auto;border-radius:0;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none;animation-duration:0s;-moz-animation-duration:0s;-webkit-animation-duration:0s;-o-animation-duration:0s}.fl-builder-ui-pinned-container .fl-lightbox-header-wrap{border-radius:0}.fl-builder-ui-pinned-container .fl-lightbox.ui-draggable .fl-lightbox-header{cursor:auto}.fl-builder-ui-pinned-container .fl-lightbox-header h1{padding:12px 20px 10px!important}.fl-builder-ui-pinned-content-transform{transform:scale(1);transform-origin:center top 0}.fl-builder-ui-pinned-collapse{cursor:pointer;display:none;position:absolute!important;bottom:2px;padding:5px;border:2px solid transparent;background:0 0;width:36px;height:36px;border-radius:4px;fill:#778794;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:center;justify-content:center}.fl-builder-ui-pinned-collapse:focus,.fl-builder-ui-pinned-collapse:hover{top:auto!important;background:0 0;border:2px solid transparent;outline:0;fill:#00A0D2}.fl-builder-ui-pinned-collapse:focus{background:#E4E7EA}.fl-builder-ui-pinned-collapse>*{margin:auto;line-height:1}.fl-builder-ui-pinned-collapse svg g{fill:inherit}.fl-builder-ui-is-pinned-right .fl-builder-ui-pinned-right-collapse{display:-ms-flexbox;display:flex;left:-40px}.fl-builder-ui-is-pinned-left .fl-builder-ui-pinned-left-collapse{display:-ms-flexbox;display:flex;right:-40px}.fl-builder-ui-pinned-collapse i[data-toggle=show],.fl-builder-ui-pinned-is-collapsed i[data-toggle=hide]{display:none}.fl-builder-ui-pinned-is-collapsed i[data-toggle=show]{display:block}.fl-builder--panel-no-settings,.fl-builder-simple-pinned .fl-builder--content-library-panel .fl-builder--panel-content,.fl-builder-simple-pinned .fl-builder--content-library-panel .fl-builder--panel-controls,.fl-builder-simple-pinned .fl-builder--content-library-panel .fl-builder--tab-wrap,.fl-builder-ui-pinned-is-collapsed .fl-builder--panel-header{display:none}.fl-builder-ui-is-pinned-left [data-toggle=hide],.fl-builder-ui-is-pinned-right [data-toggle=show]{transform:rotateY(180deg)}.fl-builder-ui-pinned-is-collapsed .fl-lightbox{box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none}.fl-builder-simple-pinned .fl-builder--content-library-panel .fl-builder--panel-header{background:0 0;border:none;z-index:10}.fl-builder-simple-pinned .fl-builder--content-library-panel .fl-lightbox-wrap{top:0}.fl-builder-simple-pinned .fl-builder--content-library-panel .fl-lightbox-header h1{padding:14px 28px 15px!important}.fl-builder-simple-pinned .fl-builder--panel-no-settings{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:0;left:0;right:0;bottom:0}@keyframes fl-builder-show-panel{from{transform:scale(.8)}to{transform:scale(1)}}.fl-builder--search-results-panel,.fl-builder-panel{box-sizing:border-box;position:fixed!important;right:20px;top:calc(43px + 10px);width:380px;bottom:20px;background:#F5F7F9;color:#676F7A;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;border-radius:4px;box-shadow:0 8px 40px 4px rgba(0,0,0,.3);z-index:10000007;will-change:transform;user-select:none}.fl-builder-panel{transform-origin:top right;animation-name:fl-builder-show-panel;animation-duration:.15s;animation-fill-mode:both;-ms-flex:1;flex:1;display:none}.fl-builder--search-results-panel{display:none;position:absolute;right:0;top:93px;left:0;bottom:0;width:auto!important;border:none;border-radius:0;box-shadow:none;min-height:100px;max-height:calc(100vh - 54px);overflow:auto;z-index:1}.fl-builder-content-panel-is-showing .fl-builder-panel,.fl-builder-search-results-panel-is-showing .fl-builder--search-results-panel{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.fl-builder-panel .fl-lightbox .fl-builder-panel-drag-handle,.fl-builder-ui-is-pinned .fl-builder--panel-arrow,.fl-lightbox-width-full .fl-builder-panel-drag-handle,body.fl-builder-draggable-is-dragging .fl-builder--panel-arrow{display:none}.fl-builder--search-results-panel .fl-builder--no-results{text-align:center;padding:50px 20px}.fl-builder--panel-arrow{position:absolute;top:-13px;right:10px}.fl-builder--panel-arrow polygon{fill:#00a0d2}.fl-builder--panel-header{border-top:3px solid #00a0d2;border-top-right-radius:4px;border-top-left-radius:4px}.fl-builder-ui-is-pinned .fl-builder--panel-header{border-top:none}.fl-builder-panel-drag-handle{position:absolute;top:7px;left:10px;fill:#ccd4da;width:6px}.fl-builder-ui-is-pinned-left .fl-builder-panel-drag-handle{left:auto;right:10px}.fl-builder--panel-header .fl-builder--panel-controls{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;position:relative}.fl-builder--panel-header .fl-builder--panel-controls .fl-builder-content-group-select{-ms-flex:1 1;flex:1 1}.fl-builder--panel-header .fl-builder--panel-controls .fl-builder-panel-search{-ms-flex:0 0;flex:0 0;padding:0 10px 6px 0;margin-left:-4px}.fl-builder--panel-controls .fl-builder-panel-search button{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:30px;background:0 0!important;border:2px solid transparent!important;font-size:inherit;height:36px;margin:0;padding:0}.fl-builder--panel-controls .fl-builder-panel-search button:active,.fl-builder--panel-controls .fl-builder-panel-search button:focus{top:0;outline:0}.fl-builder-panel-search button svg{height:auto;width:20px}.fl-builder-panel-search button.fl-builder-dismiss-panel-search svg{width:16px}.fl-builder-panel-search button svg .filled-shape{fill:#000}.fl-builder--panel-controls .fl-builder-panel-search button:active svg .filled-shape,.fl-builder--panel-controls .fl-builder-panel-search button:focus svg .filled-shape{fill:#00A0D2}.fl-builder-panel-search .fl-builder-panel-search-input{display:none;position:absolute;top:0;left:0;right:0;bottom:0;background:#f5f7f9}.fl-builder-panel-search.is-showing-input .fl-builder-panel-search-input{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;padding:0 10px 6px}.fl-builder-panel-search-input input{-ms-flex:1 1 100%;flex:1 1 100%;border:2px solid #e6eaed;background:#fff;border-radius:4px;margin:0 4px 0 0;padding:10px;color:#333}.fl-builder-panel-search-input input:focus{border-color:#0197C6;outline:0}.fl-builder-panel-content-wrap{bottom:0;height:auto;left:0;overflow:hidden;position:absolute;right:0;top:43px}.fl-builder-panel-content{padding-bottom:60px}.fl-builder--panel-view .fl-builder-blocks-section:first-child{border-top:none}.fl-builder-blocks-group:first-child{padding:20px 0 0}.fl-builder-blocks-group .fl-builder-blocks-section-group-name{display:block;padding:0 30px 15px;color:#000;font-size:20px;font-weight:600;line-height:1.4}.fl-builder-blocks-section .fl-builder-block{display:block;line-height:1.1;padding:15px 20px}.fl-builder--template-collection-section-header,.fl-builder-blocks-section .fl-builder-blocks-section-header{line-height:1.2;color:#333;margin:0!important;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#e7ebef;border-top:4px solid #e7ebef;height:30px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.fl-builder-blocks-section .fl-builder-blocks-section-title{background:#F5F7F9;color:#353535;padding:2px 16px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.fl-builder-blocks-section .fl-builder-blocks-section-title i{color:#bfbfbf;float:right}.fl-builder-blocks-section-content{overflow:auto;padding:10px 10px 20px}.fl-builder-blocks-section-content:before{content:none}.fl-builder-blocks-section-content:after{float:none;clear:both}.fl-builder-blocks-section-content.fl-builder-modules,.fl-builder-blocks-section-content.fl-builder-rows,.fl-builder-blocks-section-content.fl-builder-widgets{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}@supports (display:grid){.fl-builder--template-collection-section-content,.fl-builder-blocks-section-content.fl-builder-modules,.fl-builder-blocks-section-content.fl-builder-rows,.fl-builder-blocks-section-content.fl-builder-widgets{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr))}.fl-builder--template-collection-section-content>*,.fl-builder-blocks-section-content.fl-builder-modules>*,.fl-builder-blocks-section-content.fl-builder-rows>*,.fl-builder-blocks-section-content.fl-builder-widgets>*{width:auto!important}}.fl-builder-blocks-section-content .fl-builder-block-module,.fl-builder-blocks-section-content .fl-builder-block-row{-ms-flex:1 1 50%;flex:1 1 50%;width:50%;box-sizing:border-box}.fl-builder--search-results-panel .fl-builder-blocks-section-content .fl-builder-block-module{-ms-flex:1 1 100%;flex:1 1 100%;width:100%}.fl-builder-blocks-section.fl-active .fl-builder-blocks-section-content{display:block}.fl-builder-blocks-section-content .fl-builder-block{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:4px;font-size:13px;line-height:1.1;font-weight:400;color:#38404a}.fl-builder-block{position:relative;height:47px}.fl-builder-block.fl-builder-block-col-group{height:84px}.fl-builder-block.fl-builder-block-has-thumbnail{height:auto!important;padding:10px!important}.fl-builder-block.fl-builder-block-has-thumbnail:hover{padding:0!important}.fl-builder-block.fl-builder-block-has-thumbnail .fl-builder-block-content{position:relative!important}.fl-builder-block.fl-builder-block-has-thumbnail:hover .fl-builder-block-content{padding:10px!important}.fl-builder-block.fl-builder-block-has-thumbnail .fl-builder-block-details{margin:0 10px 4px!important}.fl-builder-block:hover{overflow:visible;z-index:1}.fl-builder-block:hover .fl-builder-block-content{display:block;box-sizing:border-box;position:absolute;top:0;left:0;width:100%;padding:15px 20px;border-radius:4px;background:#fff;box-shadow:0 2px 4px 0 rgba(0,0,0,.12);text-decoration:none;color:#111;cursor:move;overflow:hidden}.fl-builder-blocks-node-template .fl-builder-block,.fl-builder-blocks-section-content .fl-builder-block .fl-builder-block-details{position:relative}.fl-builder-block-module:hover .fl-builder-block-content{width:auto;min-width:100%}.fl-builder-block .fl-builder-block-content .fl-builder-block-visual{display:block;margin-bottom:7px}.fl-builder-block-drag-helper .fl-builder-block-content .fl-builder-block-visual{display:none!important}.fl-builder-block .fl-builder-block-content .fl-builder-block-visual.fl-cols-visual{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;height:30px}.fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col{-ms-flex:1 100%;flex:1 100%;background:#464a4c;height:30px;margin:0 2px;border-radius:2px}.fl-builder-block:hover .fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col{background:#000}.fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col:first-child{margin-left:0!important}.fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col:last-child{margin-right:0!important}.fl-cols-visual.left-right-sidebar .fl-cols-visual-col:first-child,.fl-cols-visual.left-right-sidebar .fl-cols-visual-col:last-child,.fl-cols-visual.left-sidebar .fl-cols-visual-col:first-child,.fl-cols-visual.right-sidebar .fl-cols-visual-col:last-child{-ms-flex-preferred-size:60px;flex-basis:60px}.fl-builder-block-saved-column.fl-builder-block-global .fl-builder-block-title,.fl-builder-block-saved-column:hover .fl-builder-block-title,.fl-builder-block-saved-module.fl-builder-block-global .fl-builder-block-title,.fl-builder-block-saved-module:hover .fl-builder-block-title,.fl-builder-block-saved-row.fl-builder-block-global .fl-builder-block-title,.fl-builder-block-saved-row:hover .fl-builder-block-title{margin-right:70px}.fl-builder-block-module:nth-child(even):hover .fl-builder-block-content{left:auto;right:0}.fl-builder-block-thumbnail{border-radius:4px;background-size:contain;background-repeat:no-repeat;background-position:center;background-color:rgba(0,0,0,.06);margin-bottom:10px;transform-origin:bottom;transition-property:transform,box-shadow;transition-duration:.15s}.fl-builder-block:hover .fl-builder-block-thumbnail{transform:scale(1.05);box-shadow:0 20px 40px rgba(0,0,0,.08)}.fl-builder-block .fl-builder-block-icon{margin-right:7px;fill:#000;display:inline-block;width:20px;height:20px;vertical-align:middle}.fl-builder-block-thumbnail:before{content:"";display:block;padding-top:50%}.fl-builder-block-thumbnail img{max-width:100%;max-height:160px;margin:0;-o-object-fit:cover;object-fit:cover}.fl-builder-blocks-section-content .fl-builder-block{box-shadow:0 0 0 transparent;transition-property:box-shadow;transition-duration:.15s}.fl-builder-blocks-section-content .fl-builder-block i,.fl-user-template-actions i{color:#000;margin-right:10px}.fl-builder-blocks-separator{background:#f1f1f1;height:6px}.fl-builder-block:hover .fl-builder-badge{background:#2ea2cc}.ui-sortable-helper .fl-builder-badge{display:none!important}.fl-builder-modules-cta a{color:#999!important;display:block!important;font-size:12px!important;font-style:italic!important;padding:15px 20px!important;line-height:16px!important}.fl-builder-modules-cta a:hover{background:#e5e5e5!important;color:#666!important;text-decoration:none!important}.fl-builder-modules-cta a:focus{text-decoration:none!important}.fl-builder-modules-cta .fa{float:right!important;font-size:14px!important;margin:3px 0 0 9px!important}.fl-builder--panel-message{text-align:center;padding:40px 20px;font-size:16px}.fl-builder--panel-message .fl-builder-button{display:inline-block;padding:10px}.fl-builder--panel-cta{padding:20px 30px;font-size:16px;text-align:center}.fl-builder--panel-cta a{color:inherit;text-decoration:none}.fl-builder--panel-cta a:hover{text-decoration:none}.fl-builder-block-template-image{margin:5px 0 10px;max-width:100%;border:1px solid #dfdfdf}.fl-builder-block .fl-builder-block-title{overflow:hidden;text-overflow:ellipsis;vertical-align:middle;line-height:1.3}.ui-sortable-helper .fl-builder-block-template-image{display:none!important}@keyframes fl-builder-template-item-enter{from{transform:translateY(100px) scale(.3);opacity:0}to{transform:scale(1);opacity:1}}.fl-builder--template-collection{clear:both;padding:10px 0}.fl-builder--template-collection-section-content{padding:0 10px}.fl-builder--template-collection-item{box-sizing:border-box;width:50%;float:left;padding:10px;cursor:pointer;font-size:13px;transform-origin:center;opacity:1}.fl-builder--template-thumbnail{background-size:cover;background-clip:content-box;background-position:center top;background-color:#fff;border:2px solid transparent;transform-origin:bottom;transition-property:transform,box-shadow;transition-duration:.15s}.fl-builder--template-collection-item[data-id="0"] .fl-builder--template-thumbnail,.fl-user-template .fl-builder--template-thumbnail{border-color:#e4e7ea}.fl-builder--template-thumbnail:before{display:block;content:"";padding-top:120%}.fl-builder--template-thumbnail:hover{transform:scale(1.05);box-shadow:0 20px 40px rgba(0,0,0,.08)}.fl-builder--template-name{text-align:center;padding:4px 0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.fl-builder--template-collection-section{padding-bottom:10px;border-bottom:1px solid #dfdfdf}.fl-builder--template-collection-section:last-child{border-bottom:none}.fl-builder--template-collection-section:after,.fl-builder--template-collection-section:before{content:"";display:block;clear:both}.fl-builder--template-collection-section-name{padding:15px 10px 10px}span.fl-builder-block-no-node-templates{display:block;padding:15px 20px;text-align:center}span.fl-builder-block-no-node-templates:hover{cursor:default}.fl-builder-blocks-section-content .fl-builder-node-template-actions{bottom:0;cursor:default;display:none;position:absolute;right:0;top:0}.fl-builder-blocks-section-content .fl-builder-node-template-delete,.fl-builder-blocks-section-content .fl-builder-node-template-edit{display:inline;cursor:pointer;margin:0;padding:15px 10px;text-align:center;width:30px}.fl-builder-block-details .fl-builder-node-template-delete,.fl-builder-block-details .fl-builder-node-template-edit{padding-top:0!important}.fl-builder-blocks-section-content .fl-builder-node-template-delete i,.fl-builder-blocks-section-content .fl-builder-node-template-edit i{margin:0}.fl-builder-blocks-section-content .fl-builder-node-template-delete:hover i,.fl-builder-blocks-section-content .fl-builder-node-template-edit:hover i{color:#444}.fl-builder-blocks-node-template .fl-builder-block:hover .fl-builder-node-template-actions{display:block}.ui-sortable-helper .fl-builder-node-template-delete,.ui-sortable-helper .fl-builder-node-template-edit{display:none!important}.fl-builder--tabs{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;position:relative;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:center;align-items:center}.fl-builder-panel .fl-builder--panel-header{cursor:move}.fl-builder-panel .fl-builder--tabs{-ms-flex-pack:distribute;justify-content:space-around;padding:4px 24px;cursor:pointer}.fl-builder--tab-wrap{-ms-flex:1 1 100%;flex:1 1 100%;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:stretch;align-items:stretch;-ms-flex-pack:justify;justify-content:space-between;margin:auto;max-width:400px}.fl-builder--tabs button,.fl-builder--tabs button:active,.fl-builder--tabs button:focus,.fl-builder--tabs button:hover{-ms-flex:1 1 100%;flex:1 1 100%;display:inline-block;text-decoration:none;text-transform:none;color:inherit;text-align:center;letter-spacing:normal!important;margin:0;padding:5px;cursor:pointer;font-size:13px!important;font-weight:500!important;line-height:1.3!important;background:0 0!important;outline:0!important;border:2px solid transparent;border-radius:4px;min-height:36px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif!important;top:0;transition-property:background,color;transition-duration:.25s}.fl-builder--tabs button:focus{background:#e6eaed!important}.fl-builder--tabs button.is-showing{color:#0086b0}.fl-builder--panel-content{-ms-flex:1;flex:1}.fl-builder--panel-view{display:none;overflow:hidden}.fl-builder--panel-view.is-showing{display:block}.fl-builder--content-library-panel.ui-draggable-dragging{height:500px!important}.fl-builder--content-library-panel .fl-builder-drop-zone{display:none!important}.fl-builder--panel-header .fl-builder--tabs{cursor:move}.fl-builder--category-select{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;position:relative}.fl-builder--selector-display{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;position:relative;-ms-flex-pack:justify;justify-content:space-between;color:#161B20;background:url(../img/svg/select-arrow-down-alt2.svg) center right 10px no-repeat #fff!important;cursor:pointer;font-size:13px;font-weight:700;line-height:16px;border-radius:4px;-ms-flex-align:stretch;align-items:stretch}.fl-builder--selector-display-label{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:stretch;align-items:stretch;font-size:inherit;line-height:inherit;width:100%;margin:0!important;padding:0!important;color:#6D6D6D;background:0 0;border:2px solid transparent;box-shadow:0 1px 2px 0 rgba(0,0,0,.12)!important;border-radius:4px;font-family:inherit;text-transform:none}.fl-builder--selector-display-label:hover{top:0;color:inherit;background:0 0;border:2px solid transparent;border-radius:4px}.fl-builder--selector-display-label:active{top:0;color:inherit;background:0 0;border:2px solid #e4e7ea;border-radius:4px}.fl-builder--selector-display-label:focus{top:0;color:inherit;background:0 0;border:2px solid #00A0D2;outline:0}.fl-builder--group-label{color:inherit;-ms-flex:0 0 0%;flex:0 0 0%;padding:4px 12px 4px 10px;background:#e7ebef;border-radius:3px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center}.fl-builder--current-view-name{-ms-flex:1 1 100%;flex:1 1 100%;color:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;padding:8px 10px;text-align:left}.fl-builder--selector-menu{display:none;color:#293138;position:absolute;top:46px;left:0;width:100%;background:#fff;border-radius:4px;box-shadow:0 0 20px 2px rgba(0,0,0,.2);overflow:visible;z-index:2}.fl-builder--selector-menu:before{bottom:100%;right:8px;content:" ";height:0;width:0;position:absolute;pointer-events:none;border:solid;border-color:rgba(255,255,255,0);border-bottom-color:#fff;border-width:10px;margin-left:-10px}.fl-builder--category-select.is-showing .fl-builder--selector-menu{display:-ms-flexbox;display:flex;max-height:calc(100vh - 150px)}.fl-builder--category-select.is-showing .fl-builder--selector-menu .fl-builder--menu{margin:10px 0;-ms-flex:1 100%;flex:1 100%;overflow:auto}button.fl-builder-button.fl-builder-bar-title-caret{margin:4px}button.fl-builder-button.fl-builder-bar-title-caret:focus{background-color:#e6eaed!important;border-color:transparent!important}.fl-builder--category-select.is-showing .fl-builder-bar-title-caret i{transform:rotate(180deg)}.fl-builder--menu{margin-bottom:2px}.fl-builder--menu>a,.fl-builder--menu>button,.fl-builder--menu>span{display:block;padding:8px 10px 10px;border-radius:4px;color:inherit;text-decoration:none;background:0 0!important;border:2px solid transparent!important;font-weight:400;font-family:inherit}.fl-builder--menu>a:active,.fl-builder--menu>a:focus,.fl-builder--menu>a:hover,.fl-builder--menu>button:active,.fl-builder--menu>button:focus,.fl-builder--menu>button:hover{background:#e6eaed!important;border:2px solid transparent!important;top:0}.fl-builder-block-drag-helper,.fl-builder-block.ui-draggable-dragging,.fl-builder-drop-zone,.fl-builder-empty{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.fl-builder--menu>a:focus,.fl-builder--menu>button:focus{outline:0;color:inherit;text-decoration:none}.fl-builder--menu .fl-has-children>svg{float:right;margin:0 7px 0 0;height:16px;width:9px;transition-property:transform;transition-duration:.15s;transform:rotate(-90deg)}.fl-builder--menu .fl-has-children.fl-has-children-showing>svg{transform:rotate(0)}.fl-builder--menu .fl-inset{display:none;padding-left:35px;font-size:14px;line-height:1.25}.fl-builder--menu a.fl-template-collection{color:#161B20}.fl-builder--menu>:after{clear:both}.fl-builder--menu * .fl-builder--menu-item-accessory{float:right;color:#000;text-transform:uppercase;text-align:center;min-width:20px;letter-spacing:2px}.fl-builder--menu * .fl-builder--menu-item-accessory i{font-size:1em;margin-top:2px}.fl-builder--menu .fl-builder-video-wrap iframe{display:block;margin:4px 0;width:100%}.fl-builder-publish-actions{display:-ms-flexbox;display:flex;box-sizing:border-box;position:absolute;top:0;right:0;width:380px;max-width:100%;height:44px;padding:4px 4px 4px 0;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:end;justify-content:flex-end;opacity:1;pointer-events:auto;transform:scaleX(1) translateX(0);transform-origin:right;transition-property:transform,opacity;transition-duration:.15s}.fl-builder-publish-actions.is-hidden{transform:scaleX(.23) translateX(68px);opacity:0;pointer-events:none}.fl-builder-bar .fl-builder-button-group{display:-ms-flexbox;display:flex;-ms-flex-preferred-size:100%;flex-basis:100%}.fl-builder-bar .fl-builder-button-group>.fl-builder-button{border-radius:0;margin-left:0;-ms-flex-preferred-size:100%;flex-basis:100%;text-align:center;-ms-flex-pack:distribute;justify-content:space-around;box-shadow:none}.fl-builder-bar .fl-builder-button-group>.fl-builder-button:first-child{margin-left:0;border-top-left-radius:3px;border-bottom-left-radius:3px}.fl-builder-bar .fl-builder-button-group>.fl-builder-button:last-child{border-top-right-radius:3px;border-bottom-right-radius:3px}.fl-builder-publish-actions-click-away-mask{display:none;position:fixed;top:0;left:0;right:0;height:100vh;background:0 0}.fl-builder-dragging .fl-builder-content:not(.fl-builder-empty){padding:16px 0}.fl-builder-empty{display:none;border:2px dashed #969696;border-radius:8px;color:#909090;font-size:20px;font-weight:700;margin:10px;padding:250px 20px;position:relative;text-align:center;text-transform:uppercase}.fl-builder-drop-zone,.fl-builder-has-submenu>ul.fl-builder-submenu li a{font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fl-builder-edit .fl-builder-empty{display:block}.fl-builder-block-drag-helper,.fl-builder-block.ui-draggable-dragging{background:rgba(255,255,255,.95)!important;border:2px solid #000;border-radius:4px;box-shadow:0 0 8px rgba(0,0,0,.2);-moz-box-shadow:0 0 8px rgba(0,0,0,.2);-webkit-box-shadow:0 0 8px rgba(0,0,0,.2);color:#333!important;font-size:13px!important;height:47px!important;line-height:40px!important;overflow:hidden;padding:0 20px;position:fixed!important;text-overflow:ellipsis;white-space:nowrap;width:180px!important;z-index:100010!important;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-line-pack:center;align-content:center;-ms-flex-pack:start;justify-content:flex-start}.fl-builder-block.fl-builder-block-drag-helper:hover{padding:0;box-shadow:none}.fl-builder-block-drag-helper:hover .fl-builder-block-content{position:static;padding:0 20px}.fl-col-has-highlight-guide .fl-col-content,.fl-col-highlight,.fl-row-highlight .fl-col-group{position:relative}.fl-builder-block-saved-column.fl-builder-block-drag-helper:hover .fl-builder-block-content,.fl-builder-block-saved-module.fl-builder-block-drag-helper:hover .fl-builder-block-content,.fl-builder-block-saved-row.fl-builder-block-drag-helper:hover .fl-builder-block-content{padding:14px 20px}.fl-builder-block-drag-helper .fl-builder-block-icon{fill:#000;margin-top:-10px}.fl-builder-drop-zone{animation:fl-builder-drop-zone-pulse 2s infinite;background:#00A2D7;border-radius:4px;color:#fff!important;display:block;font-size:12px;letter-spacing:1px;line-height:14px;margin:10px;padding:6px 8px 5px;position:relative;text-align:left;text-shadow:none;text-transform:none;z-index:10}@keyframes fl-builder-drop-zone-pulse{0%,100%{background-color:#00A2D7}50%{background-color:#79DEFF}}.fl-builder-drop-zone-global{animation:fl-builder-drop-zone-global-pulse 2s infinite;background:#ff9600}@keyframes fl-builder-drop-zone-global-pulse{0%,100%{background-color:#FFBC5C}50%{background-color:#ff9600}}.fl-builder-content>.fl-builder-drop-zone{margin:10px 20px}.fl-row-content>.fl-builder-drop-zone{margin:3px 7px}.fl-col-has-cols>.fl-col-content>.fl-builder-drop-zone{margin:3px 10px}.fl-sortable-disabled>.fl-builder-drop-zone{display:none!important}.fl-col-group-equal-height.fl-col-group-align-center .fl-col-content>.fl-builder-drop-zone{width:100%}.fl-row-highlight{padding:16px 0}.fl-row-highlight .fl-row-content{border:2px dashed rgba(203,205,206,.5);padding:8px;border-radius:6px}.fl-row-highlight.fl-node-global .fl-row-content{border-color:#ff9600}.fl-col-highlight{padding:8px}.fl-col-highlight .fl-col-content{border-style:dashed!important;border-color:#00a0d2!important;border-radius:4px;min-height:100px;overflow-x:hidden;border-width:2px!important}.fl-col-has-cols.fl-col-highlight>.fl-col-content{padding:8px}.fl-col-highlight.fl-node-global .fl-col-content{border-color:#ff9600!important}.fl-builder-simple .fl-col-highlight .fl-col-content{border:none!important}.fl-col-highlight-guide{background:rgba(0,160,210,.05);border:2px solid #00A0D2;border-radius:4px;bottom:4px;left:4px;position:absolute;right:4px;top:4px;z-index:1}.fl-node-global .fl-col-highlight-guide{border-color:#ff9600!important;background-color:rgba(255,150,0,.06)!important}.fl-col-has-highlight-guide .fl-block-overlay{background:0 0;border-color:transparent}.fl-col-has-highlight-guide .fl-block-col-resize{display:none}.fl-col-has-highlight-guide .fl-col-highlight .fl-col-content{border-color:transparent!important}.fl-col-drop-target{bottom:8px;display:none;left:-9px;position:absolute;top:8px;width:18px;z-index:1}.fl-col-highlight .fl-col-drop-target{display:block}.fl-col-drop-target-last{left:auto;right:-9px}.fl-col-drop-target .fl-builder-drop-zone{bottom:0;left:2px;margin:0;padding:0;position:absolute;right:2px;top:0}.fl-col-group-drop-target{display:none;left:8px;height:18px;position:absolute;right:8px;top:-9px;z-index:1}.fl-row-highlight .fl-col-group-drop-target{display:block}.fl-col-group-drop-target-last{top:auto;bottom:-9px}.fl-col-group-drop-target .fl-builder-drop-zone{bottom:2px;left:0;margin:0;padding:0;position:absolute;right:0;top:2px}.fl-row-content>.fl-col-group-drop-target{position:static}.fl-row-content>.fl-col-group-drop-target .fl-builder-drop-zone{height:18px;position:static}.fl-row-drop-target{display:none;left:0;height:24px;margin-top:-28px;position:absolute;right:0;z-index:1}.fl-row-highlight .fl-row-drop-target{display:block}.fl-row-drop-target-last{margin-top:4px}.fl-row .fl-row-drop-target .fl-builder-drop-zone{bottom:0;left:4px;margin:0;position:absolute;right:4px;top:0}.fl-builder-content>.fl-row-drop-target{margin:0;position:static}.fl-builder-dragging .fl-builder-content.fl-builder-empty>.fl-row-drop-target{bottom:10px;display:block;height:auto;left:0;position:absolute;right:0;top:10px}.fl-builder-content .fl-row-drop-target .fl-builder-drop-zone{margin-bottom:0;margin-top:0}.fl-col-group:focus,.fl-col:focus,.fl-module:focus,.fl-row:focus{outline:0}.fl-sortable-proxy{display:none}.fl-block-overlay,.fl-block-overlay *{text-shadow:none;-webkit-touch-callout:none;transition-property:border-color;transition-duration:.3s}.fl-block-overlay-active{position:relative}.fl-block-overlay-actions{background:#00A0D2;float:left;height:30px;margin:-1px -1px 0;padding:0 4px;text-shadow:none;border-bottom-right-radius:5px;border-top-left-radius:3px;transition-property:background-color;transition-duration:.3s}.fl-row-overlay-header-bottom .fl-block-overlay-actions{border-radius:0 5px 0 3px}.fl-builder-col-resizing .fl-block-overlay-actions,.fl-builder-row-resizing .fl-block-overlay-actions{overflow:hidden}.fl-block-overlay-actions>span{display:block;float:left}.fl-block-overlay-actions i{color:#fff!important;cursor:pointer;display:block!important;float:left;font-size:16px!important;height:28px!important;line-height:28px!important;opacity:.8;filter:alpha(opacity=80);text-align:center;width:32px!important}.fl-block-overlay-actions i:hover{opacity:1;filter:alpha(opacity=100)}.fl-block-overlay-actions>i:first-child{padding-left:4px}.fl-block-overlay-actions>i:last-child{padding-right:2px}.fl-block-overlay-actions .fl-block-move{cursor:move}.fl-block-has-rules{color:#00A0D2!important;cursor:pointer;padding:7px;position:absolute;right:0;top:0}.fl-block-overlay-title,.fl-builder-has-submenu>ul.fl-builder-submenu li a{color:#fff!important;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.fl-block-overlay-title{float:left;font-size:14px;height:30px;line-height:29px;margin-right:2px;padding:0 12px 0 8px}.fl-col-overlay,.fl-module-overlay,.fl-row-overlay{background:rgba(190,239,255,0);color:#fff}.fl-row-overlay{border:2px solid #00A0D2;border-radius:4px;bottom:0;box-sizing:border-box!important;-moz-box-sizing:border-box!important;-webkit-box-sizing:border-box!important;left:0;position:absolute;top:-33px;right:0;z-index:100006}.fl-row-overlay.fl-row-menu-active,.fl-row-overlay.fl-row-menu-active.fl-block-overlay.fl-block-overlay-global{z-index:100007}.fl-row-full-width .fl-row-overlay{left:2px;right:2px;bottom:2px}.fl-row-overlay-header-bottom{bottom:-32px!important;top:0}.fl-row-overlay-header-bottom .fl-block-overlay-header{position:absolute;bottom:0}.fl-block-overlay-active .fl-row-content-wrap{position:relative}.fl-block-overlay-active .fl-row-content{position:relative;z-index:100007!important}.fl-builder-row-resizing .fl-col.fl-block-overlay-active,.fl-builder-row-resizing .fl-module.fl-block-overlay-active{position:static}.fl-col-overlay{border:2px solid #00A0D2;border-radius:4px;bottom:8px;cursor:pointer;left:8px;position:absolute;right:8px;top:8px;z-index:100008}.fl-module-overlay{border:2px solid #00A0D2;border-radius:4px;bottom:4px;cursor:pointer;left:4px;min-height:32px;position:absolute;right:4px;top:4px;z-index:100007}.fl-builder-global-templates-locked .fl-block-overlay-global.fl-module-overlay{cursor:default}.fl-module-adjust-height{padding-bottom:15px;padding-top:15px}.fl-col-bg-overlay .fl-block-overlay-active.fl-module{z-index:100008}.fl-block-overlay-global{background:rgba(255,150,0,0);border:2px solid #F7A407;border-radius:4px}.fl-block-overlay-global .fl-block-overlay-actions{background:#F7A407}.fl-block-overlay-title-global{background:#fff;color:#ff9600!important;font-size:11px;letter-spacing:1px;margin-left:4px;padding:2px 4px;vertical-align:top}.fl-block-overlay-global.fl-row-overlay{background:rgba(255,150,0,0);cursor:pointer;z-index:100007}.fl-builder-global-templates-locked .fl-block-overlay-global.fl-row-overlay{cursor:default}.fl-builder-row-template .fl-block-overlay-global.fl-row-overlay{background:rgba(255,150,0,0);cursor:default;z-index:100006}.fl-block-overlay-global.fl-row-overlay .fl-block-col-resize{display:none}.fl-block-overlay-muted .fl-row-overlay{background:rgba(85,93,102,0);border:2px solid #555D66}.fl-block-overlay-muted .fl-row-overlay .fl-block-overlay-actions{background:#555D66}.fl-block-overlay-muted .fl-row-overlay .fl-block-has-rules{color:#555D66!important}.fl-block-overlay-muted .fl-row-overlay .fl-block-col-resize{display:none}.fl-node-disabled .fl-row-content-wrap,.fl-node-disabled>.fl-col-content{opacity:.3}.fl-block-col-resize{bottom:0!important;position:absolute;top:0!important;width:6px}.fl-block-col-resize-e{cursor:ew-resize;left:auto!important;right:-2px!important}.fl-block-col-resize-w{cursor:ew-resize;left:-7px!important}.fl-block-col-resize-handle-wrap{margin:-4px 0 0 -5px;padding:0 5px;position:absolute;top:50%!important}.fl-block-col-resize-e .fl-block-col-resize-handle-wrap{margin-left:-6px}.fl-block-col-resize-handle{background:#fff;border:2px solid #00A0D2;border-radius:50%;height:12px;width:12px}.fl-node-global .fl-block-col-resize-handle{border-color:#ff9600}.fl-block-col-resize-feedback{color:#333!important;display:none;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:11px!important;position:absolute}.fl-block-col-resize-feedback-left,.fl-block-col-resize-feedback-right{background:#fff;border:1px solid #3ba0ff;padding:2px 4px}.fl-block-col-resize-feedback-left{right:20px;top:-7px}.fl-block-col-resize-feedback-right{left:20px;top:-7px}.fl-builder-has-submenu{position:relative}.fl-builder-has-submenu>ul.fl-builder-submenu{background:#00A0D2;box-shadow:0 0 20px rgba(0,0,0,.2);border-radius:0 4px 4px;display:none;left:0;list-style:none;margin:0;padding:6px 0;position:absolute;text-align:left;top:100%;width:165px;z-index:100008}.fl-builder-has-submenu>ul.fl-builder-submenu li{list-style:none;margin:0;padding:0}.fl-builder-submenu-right ul.fl-builder-submenu{left:auto;right:0}.fl-builder-has-submenu.fl-builder-submenu-open>ul.fl-builder-submenu{display:block}.fl-builder-has-submenu>ul.fl-builder-submenu li a{border-bottom:0 none;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none;display:block;line-height:13px;font-size:13px;opacity:.8;filter:alpha(opacity=80);padding:6px 12px;text-decoration:none}.fl-builder-has-submenu>ul.fl-builder-submenu li a:hover{background:#0197C6;color:#fff;opacity:1;filter:alpha(opacity=100);text-decoration:none}.fl-builder-actions-title,.fl-builder-alert-lightbox .fl-lightbox-message{color:#333!important;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px!important}.fl-builder-has-submenu .fl-builder-submenu .fa,.fl-builder-has-submenu .fl-builder-submenu .far,.fl-builder-has-submenu .fl-builder-submenu .fas{float:right;height:12px!important;line-height:12px!important;position:relative;right:-5px;width:14px!important}.fl-builder-has-submenu .fl-builder-has-submenu .fl-builder-submenu{display:none;left:100%;top:0}.fl-builder-has-submenu .fl-builder-submenu-right.fl-builder-has-submenu .fl-builder-submenu{left:auto;right:100%}.fl-builder-has-submenu .fl-builder-has-submenu:hover .fl-builder-submenu{display:block}.fl-builder-submenu-sep{padding:7px 0!important}.fl-builder-submenu-sep div{border-bottom:1px solid rgba(255,255,255,.4)}.fl-block-col-move,.fl-block-col-move-parent{cursor:move;position:relative}.fl-builder-submenu .fa-arrows-alt{cursor:move;display:none!important}.fl-builder-submenu a:hover .fa-arrows-alt{display:block!important;float:right;line-height:12px!important;height:12px!important}.fl-block-overlay-global ul.fl-builder-submenu{background:#ff9600!important}.fl-block-overlay-global ul.fl-builder-submenu li a:hover{background:#fa3}.fl-builder-actions-lightbox .fl-lightbox{display:block;width:300px;border-radius:4px}.fl-builder-actions-lightbox .fl-lightbox-content-wrap{display:block}.fl-builder-actions-lightbox .fl-builder-actions{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding:25px;text-align:center}.fl-builder-actions-title{display:block;margin-bottom:20px}.fl-builder-actions .fl-builder-button{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;margin-bottom:7px;min-height:36px}.fl-builder-alert-lightbox{padding:20px;z-index:30000000;top:0;pointer-events:auto}.fl-builder-alert-lightbox .fl-lightbox{max-width:440px;width:auto}.fl-lightbox-width-slim .fl-compound-field,.fl-lightbox-width-slim .fl-dimension-field-units{max-width:none}.fl-builder-alert-lightbox .fl-lightbox-content-wrap{display:block}.fl-builder-alert-lightbox .fl-lightbox-message{line-height:24px;padding:30px}@keyframes fl-builder-content-section-entry{from{transform:translateY(150px) translateX(100px) scale(.3);opacity:0}to{transform:translateY(0) translateX(0) scale(1);opacity:1}}.fl-template-category-select{width:180px!important}.fl-template-selector .fl-builder-settings-section{margin:0 0 10px}.fl-template-selector .fl-builder-settings-fields{height:470px}.fl-template-selector .fl-builder-settings-tab{width:560px}.fl-template-selector .fl-builder-settings-tab-description{font-size:15px!important;margin:0!important;padding:10px 0 25px;text-align:center}.fl-template-preview{float:left;margin:0 25px 30px 0;position:relative;text-align:center;width:170px}.fl-template-preview.fl-last{margin-right:0}.fl-template-image{border:1px solid #d9d9d9;cursor:pointer;margin-bottom:12px;height:164px;overflow:hidden}.fl-template-image:hover{border-color:red}.fl-template-image img{max-height:none;width:100%}.fl-template-preview span{display:block;text-align:center}.fl-user-template-category-name{background:#f2f2f2;border-bottom:3px solid #dfdfdf;border-top:2px solid #dfdfdf;font-weight:700;padding:8px 15px}.fl-user-templates{border-bottom:1px solid #dfdfdf;padding:10px 0 20px}.fl-builder--user-templates-section-content{border-bottom:2px solid #e6eaed;padding:10px}.fl-builder--user-templates-section-content:first-child{padding-top:0}.fl-builder--user-templates-section-content:last-child,.fl-user-templates:last-child{border-bottom:none}.fl-builder--user-templates-section-name{font-weight:700;font-size:16px;color:#333;z-index:9999;padding:15px 10px;margin:0 10px}@keyframes fl-list-item-entry{from{opacity:0;transform:scale(.5) translateY(100px)}to{opacity:1;transform:scale(1) translateY(0)}}.fl-builder--save-new-user-template,.fl-user-template{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:4px;font-size:16px;font-weight:200;line-height:1.1;padding:10px 20px;color:#6d6d6d}.fl-user-template:hover{cursor:pointer;background:#fff;box-shadow:0 6px 20px rgba(0,0,0,.08);text-decoration:none;color:#111;padding-right:68px}.fl-user-template-name{overflow:hidden;text-overflow:ellipsis;-ms-flex:1;flex:1}.fl-user-template-actions{display:none;bottom:0;position:absolute;right:0;top:0}.fl-user-template:hover .fl-user-template-actions{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center}.fl-user-template-actions a{display:inline-block;padding:15px 0;width:30px}.fl-user-template:hover a:hover i{color:#444!important}.fl-user-templates-message{display:none}.fl-user-template-thumbnail{-ms-flex:0;flex:0;margin-right:20px}.fl-user-template-thumbnail .fl-builder--template-thumbnail{background-size:cover;background-position:center top;width:45px}.fl-user-template-thumbnail .fl-builder--template-thumbnail:hover{box-shadow:none;transform:scale(1);transition-property:none}.fl-builder--save-new-user-template .fl-user-template-thumbnail .fl-builder--template-thumbnail{border-style:dashed;border-width:2px;border-color:#ccd4da}.fl-builder--save-new-user-template .fl-save-control{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex:1;flex:1}.fl-builder--save-new-user-template .fl-save-control input{background:0 0;border:none!important;-ms-flex:1;flex:1;font-size:16px;margin-right:10px;margin-left:-12px;color:#000}.fl-builder--save-new-user-template .fl-save-control input::-webkit-input-placeholder{color:#777}.fl-builder--save-new-user-template .fl-save-control input::-moz-placeholder{color:#777}.fl-builder--save-new-user-template .fl-save-control input:-ms-input-placeholder{color:#777}.fl-builder--save-new-user-template .fl-save-control input:-moz-placeholder{color:#777}@keyframes fl-slide-in-right{from{transform:translateX(50px)}to{transform:translateX(0)}}.fl-builder--save-new-user-template .fl-save-control button{display:none;animation-name:fl-slide-in-right;animation-duration:.25s;background-color:#00a0d2;border:none;padding:0 15px}.fl-save-control-mask{display:none;background:0 0;position:absolute;top:-50px;left:0;bottom:0;right:0;z-index:-1;min-height:80vh}.fl-builder-templates-cta{margin-bottom:20px}.fl-builder-templates-cta p{display:inline-block!important;width:75%!important;font-size:14px!important;line-height:1.5!important;margin-bottom:0!important}.fl-builder-templates-cta .fl-builder-upgrade-button{font-size:13px!important;line-height:13px!important;position:relative;top:8px;left:15px;padding:1px 12px}.fl-builder-settings-message,.fl-builder-settings-message *{font-size:15px!important;line-height:23px!important}.single-fl-builder-template .fl-content{width:100%!important}form.fl-builder-settings{height:100%;margin:0;padding:0;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.fl-builder-settings-message{padding:20px 25px!important;background:#f2f2f2!important}.fl-builder-preview-loader{position:relative;top:-2px;margin-left:3px}.fl-lightbox-header .fl-builder-preview-loader{margin:0;position:absolute;right:40px;top:15px}@keyframes fl-grab-attention{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}.fl-lightbox-width-slim .fl-form-table{margin:10px 12px 10px 10px!important;width:calc(100% - 40px)}.fl-lightbox-width-slim .fl-form-table th{display:block;position:relative;padding:10px 0 0 12px!important;width:auto!important}.fl-lightbox-width-slim .fl-form-table td{display:block}.fl-lightbox-width-slim .fl-form-table .fl-field[data-type=editor] td:first-child,.fl-lightbox-width-slim .fl-form-table td:first-child{padding-left:0!important}.fl-field-label .fl-field-responsive-toggle,.fl-lightbox-width-slim .fl-field-control-wrapper .fl-field-responsive-toggle{display:none}.fl-lightbox-width-slim .fl-field-label .fl-field-responsive-toggle{display:inline-block;padding:0 5px!important}.fl-lightbox-width-slim input.text-full+.fl-field-description,.fl-lightbox-width-slim select+.fl-field-description{display:block;padding:8px 10px;margin:0}.fl-lightbox-width-slim .fl-builder-settings-fields select{width:100%}.fl-lightbox-width-slim .fl-color-picker{display:-ms-flexbox;display:flex;width:auto}.fl-lightbox-width-slim .fl-color-picker-clear{-ms-flex:0 0 40px;flex:0 0 40px}.fl-lightbox-width-slim .fl-field[data-type=dimension] .fl-field-responsive-setting{width:100%}.fl-lightbox-width-slim .fl-dimension-field-unit-select select{width:auto!important}.fl-lightbox-width-slim .fl-gradient-picker-color-row{width:50%}.fl-lightbox-width-slim .fl-color-picker.fl-gradient-picker-color,.fl-lightbox-width-slim .fl-typography-field-align .fl-button-group-field-option{width:100%}.fl-lightbox-width-slim .fl-typography-field-align .fl-button-group-field-options{float:none}.fl-lightbox-width-slim .mce-menubtn.mce-fixed-width button{width:72px!important}.fl-lightbox-width-slim .fl-builder-settings-tab-description{margin:20px 10px}.fl-lightbox-width-micro .mce-menubtn.mce-fixed-width button{width:38px!important}.fl-lightbox-width-micro .mce-btn[aria-label=Fullscreen],.fl-lightbox-width-micro .mce-btn[aria-label=Blockquote]{display:none}.fl-lightbox-width-micro .mce-toolbar i.mce-ico{width:18px}.fl-lightbox-width-slim .fl-field[data-type=editor] .fl-field-control-wrapper,.fl-lightbox-width-slim .fl-field[data-type=code] .fl-field-control-wrapper{margin-left:-10px;margin-right:-30px}.fl-lightbox .wp-editor-tools{padding-left:6px;padding-right:28px}.fl-lightbox .mce-top-part::before{box-shadow:none!important}.fl-lightbox div.mce-toolbar-grp{background:0 0;border:none}.fl-lightbox div.mce-toolbar-grp>div{padding:0 3px}.fl-lightbox .fl-builder-settings .wp-switch-editor{background:#e7ebef;border:1px solid transparent}.fl-lightbox .html-active .switch-html,.fl-lightbox .quicktags-toolbar,.fl-lightbox .tmce-active .switch-tmce{background:#fff}.fl-lightbox .quicktags-toolbar,.fl-lightbox .wp-editor-container{border:none}.fl-lightbox .mce-toolbar .mce-container-body{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.fl-lightbox-width-slim .mce-toolbar .mce-container-body{-ms-flex-pack:center;justify-content:center}.fl-lightbox textarea.wp-editor-area{line-height:1.5;padding:20px;width:calc(100% - 10px)}.fl-lightbox .wp-core-ui .button,.fl-lightbox .wp-core-ui .button-secondary{border:none;box-shadow:none;background:#e7ebef}.fl-lightbox-width-slim .fl-shadow-field .fl-dimension-field-units{width:auto}.fl-lightbox-width-slim .fl-shadow-field .fl-dimension-field-units input{max-width:none;width:100%!important}.fl-lightbox-width-slim .fl-builder-field-multiple{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;position:relative}.fl-lightbox-width-slim .fl-builder-field-multiple .fl-field-control,.fl-lightbox-width-slim .fl-builder-field-multiple .fl-field-label{width:100%!important}.fl-lightbox-width-slim .fl-builder-field-multiple .fl-form-field-preview-text{max-width:225px}.fl-lightbox-width-slim .fl-builder-field-multiple .fl-builder-field-actions{position:absolute!important;top:0;right:0;width:70px;z-index:1}.fl-lightbox-width-slim .fl-builder-field-actions-single .fl-builder-field-copy{float:right!important;margin-right:5px}.fl-lightbox-width-slim .fl-field[data-type=time] select{width:auto}.fl-builder-settings-tabs{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:stretch;align-items:stretch;overflow:hidden;height:32px;background:#e7ebef}.fl-builder-content-group-select{padding:0 10px 6px;display:none}.fl-builder-content-group-select select{display:block;width:100%;-webkit-appearance:none;-moz-appearance:none;box-sizing:border-box;padding:8px 10px;background:url(../img/svg/select-arrow-down-alt2.svg) center right 10px no-repeat #fff!important;border:2px solid #e4e7ea;color:#161B20}select:focus{border-width:2px!important;border-style:solid!important;border-color:#00a0d2!important;outline:0!important}.fl-legacy-settings-tab{background:url(../img/ajax-loader.svg) center center no-repeat;height:100px}.fl-builder-settings-tab:first-child .fl-legacy-settings-tab{background:0 0;height:auto}body .fl-builder-settings-tabs>*{box-sizing:border-box;color:#676F7A!important;fill:#676F7A!important;background:0 0;border:2px solid transparent;border-radius:0;margin:0;outline:0;padding:1px 16px;text-decoration:none!important;font-size:13px;font-weight:400!important;-ms-flex:0 0 auto;flex:0 0 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}body .fl-lightbox-width-slim .fl-builder-settings-tabs>*{-ms-flex:1 1 auto;flex:1 1 auto}body .fl-builder-settings-tabs>.fl-builder-settings-tabs-more{-ms-flex:0 0 60px;flex:0 0 60px;display:none;margin-left:auto;-ms-flex-pack:center;justify-content:center}.fl-builder-settings-tabs-more svg{width:16px;height:auto;margin:auto}.fl-builder-settings-tabs-more g,.fl-builder-settings-tabs-more path,.fl-builder-settings-tabs-more svg{fill:inherit}body .fl-lightbox-has-tab-overflow .fl-builder-settings-tabs-more{display:-ms-flexbox;display:flex}.fl-builder-settings-tabs>:active,.fl-builder-settings-tabs>:hover{top:0;color:#333;background:0 0;border:2px solid transparent}.fl-builder-settings-tabs>:focus{top:0;outline:0;border:2px solid transparent;background:0 0;color:#0086b0;fill:#0086b0}.fl-builder-settings-tabs .fl-active,.fl-builder-settings-tabs-more.fl-contains-active,.fl-builder-settings-tabs-overflow-menu .fl-active{color:#0086b0!important;fill:#0086b0!important;position:relative;background:#fff}.fl-builder-settings-tabs .fl-active.fl-overflowed,.fl-builder-settings-tabs .fl-overflowed{display:none!important}.fl-builder-settings-tabs .error{color:#d03436;padding-right:10px}.fl-builder-settings-tabs .error .fl-error-icon,.fl-builder-settings-tabs-overflow-menu .error .fl-error-icon{background:url(../img/sprite.png) -148px -5px no-repeat;display:inline-block;height:16px;margin-left:7px;position:relative;top:3px;width:16px}.fl-builder-settings-tabs-more.fl-contains-errors{fill:#d03436!important}.fl-builder-settings-tab{display:none;width:auto!important}.fl-builder-settings-tab.fl-active{display:block}.fl-builder-settings-tab-description{background:#e4e7ea;padding:10px 15px;border-radius:4px;margin:20px}.fl-builder-settings-tab-description a{text-decoration:underline!important}.fl-builder-settings-tab-description a:hover{color:#333}.fl-builder-settings-tabs-overflow-menu{display:none;position:absolute;left:0;right:0;border:2px solid #e6eaed;border-top:3px solid #00a0d2;border-radius:4px;background:#fff;z-index:9999;margin:0 6px;padding:10px;-ms-flex-direction:column;flex-direction:column;box-shadow:0 0 20px 2px rgba(0,0,0,.2)}.fl-builder-settings-tabs-overflow-menu:before{bottom:100%;right:20px;content:" ";height:0;width:0;position:absolute;pointer-events:none;border:solid;border-color:rgba(255,255,255,0);border-bottom-color:#00a0d2;border-width:10px;margin-left:-10px}.fl-builder-settings-tabs-overflow-menu>a{display:block;padding:10px 15px;font-size:14px;font-weight:600!important;border:2px solid transparent;border-radius:4px;outline:0}.fl-builder-settings-tabs-overflow-menu>a:hover{background:#e6eaed;text-decoration:none}.fl-builder-settings-tabs-overflow-click-mask{display:none;position:fixed;top:0;bottom:0;left:0;right:0;background:0 0;z-index:11}.fl-form-table{background:none;border:none;width:calc(100% - 35px)}.fl-form-table tbody{border:none}.fl-form-table tr,.fl-form-table tr:nth-child(even){background:0 0}.fl-form-table td,.fl-form-table th{background:0 0!important;border:none!important;font-weight:400!important;text-align:left!important}.fl-form-table th{padding:10px 15px 10px 30px!important;vertical-align:top!important;width:200px!important}.fl-form-table td:first-child{padding-left:30px!important}.fl-form-table th label{color:#333;width:auto;max-width:100%}.fl-form-table th label i{color:grey}.fl-form-table th label i:hover{color:#555}.fl-form-table td{padding:8px 10px}.fl-lightbox-width-slim .fl-form-table td{padding:4px 0 5px}.fl-builder-settings-fields{margin:0;overflow:hidden;position:relative;-ms-flex:1 100%;flex:1 100%;visibility:hidden}.fl-lightbox-header .fl-builder-settings-fields{height:auto;margin:0;position:absolute;right:10px;top:10px}.fl-builder-settings-fields .fl-nanoscroller-content{padding:4px 0 0}.fl-builder-settings-fields .fl-field-control-wrapper{position:relative}.fl-field{animation-duration:.25s;animation-delay:.1s}.fl-builder-settings-fields input[type=date],.fl-builder-settings-fields input[type=email],.fl-builder-settings-fields input[type=file],.fl-builder-settings-fields input[type=number],.fl-builder-settings-fields input[type=password],.fl-builder-settings-fields input[type=search],.fl-builder-settings-fields input[type=tel],.fl-builder-settings-fields input[type=text],.fl-builder-settings-fields input[type=url],.fl-builder-settings-fields select,.fl-builder-settings-fields textarea{background:#fff!important;border-color:transparent!important;border-style:solid;border-width:2px;border-radius:4px!important;box-shadow:0 2px 4px 0 rgba(0,0,0,.12);color:#333!important;display:inline;font-size:13px;height:auto;line-height:15px;margin:1px;outline:0;padding:3px 6px;width:auto;box-sizing:border-box}i.fl-dimension-field-link,i.fl-field-responsive-toggle{line-height:18px!important;cursor:pointer;vertical-align:middle}.fl-builder-settings-fields input[type=date],.fl-builder-settings-fields input[type=email],.fl-builder-settings-fields input[type=file],.fl-builder-settings-fields input[type=number],.fl-builder-settings-fields input[type=password],.fl-builder-settings-fields input[type=search],.fl-builder-settings-fields input[type=tel],.fl-builder-settings-fields input[type=text],.fl-builder-settings-fields input[type=url],.fl-builder-settings-fields select:not(multiple){height:36px!important}.fl-builder-settings-fields select,.fl-builder-settings-fields select[multiple]{height:auto!important}.fl-builder-settings-fields input[type=number]{width:70px}.fl-builder-lightbox .fl-builder-settings-fields input[type=date]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=email]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=file]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=number]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=password]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=search]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=tel]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=text]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=url]:focus,.fl-builder-lightbox .fl-builder-settings-fields select:focus,.fl-builder-lightbox .fl-builder-settings-fields textarea:focus{border-width:2px!important;border-style:solid!important;border-color:#00a0d2!important;box-shadow:0 2px 4px 0 rgba(0,0,0,.12)!important}.fl-builder-settings-fields ::-webkit-input-placeholder{color:#999!important;font-size:13px}.fl-builder-settings-fields input:-moz-placeholder{color:#999;font-size:13px}.fl-builder-settings-fields ::-moz-placeholder{color:#999!important;font-size:13px}.fl-builder-settings-fields input:-ms-input-placeholder{color:#999;font-size:13px}.fl-builder-settings-fields label{display:inline-block;font-weight:400;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-bottom:3px;font-size:12px}.fl-builder-settings-fields select{-webkit-appearance:none;-moz-appearance:none;box-sizing:border-box;color:#000;margin:0 0 2px;padding:2px 10px;padding-right:30px!important;background:url(../img/svg/select-arrow-down-alt2.svg) center right 10px no-repeat #fff!important}.fl-dimension-field-unit input[type=number],.fl-unit-field-inputs input[type=number]{-moz-appearance:textfield}.fl-builder-settings-fields select[multiple]{height:60px;background-image:none!important}.fl-builder-custom-field select,.fl-photo-field select{box-shadow:none;border-color:#e6eaed!important}.fl-builder-settings-section:first-child{border-top:none!important}.fl-builder-settings-section-header{background-color:#e7ebef;border-top:4px solid #e7ebef;cursor:pointer;height:30px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.fl-builder-settings-description{padding:0 10px 10px;margin:0;font-style:italic;opacity:.75}.fl-builder-settings-fields table{margin:20px 0}.fl-builder-settings-fields .fl-builder-settings-title{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;background:#F5F7F9;color:#353535;padding:2px 10px;margin:0;font-size:13px!important;font-weight:400;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:2px solid transparent;border-radius:0}.fl-builder-settings-fields .fl-builder-settings-title:active,.fl-builder-settings-fields .fl-builder-settings-title:hover{top:0}.fl-builder-settings-fields .fl-builder-settings-title:focus{top:0;border-color:#e0e4ea}.fl-builder-settings-fields .fl-builder-settings-title>svg{height:6px;width:9px;margin-right:7px;transition-property:transform;transition-duration:.15s}.fl-builder-settings-section-collapsed{margin-bottom:4px}.fl-builder-settings-section-collapsed .fl-builder-settings-section-content{display:none}.fl-builder-settings-section-collapsed .fl-builder-settings-title{background:0 0;-ms-flex:1 1 100%;flex:1 1 100%}.fl-builder-settings-section-collapsed .fl-builder-settings-title>svg{transform:rotate(-90deg)}.wp-core-ui h1,.wp-core-ui h2,.wp-core-ui h3,.wp-core-ui h4,.wp-core-ui h5,.wp-core-ui h6,.wp-core-ui p{color:#333;font-family:inherit}.wp-core-ui #media-attachment-date-filters{width:275px}.wp-core-ui input[type=search]::-webkit-input-placeholder{color:#333}.wp-core-ui input[type=search]:-ms-input-placeholder{color:#333}.wp-core-ui input[type=search]::-ms-input-placeholder{color:#333}.wp-core-ui input[type=search]::placeholder{color:#333}.wp-core-ui .submitbox .submitdelete{color:#a00}.wp-core-ui button{font-weight:400}.wp-core-ui input[type=date],.wp-core-ui input[type=email],.wp-core-ui input[type=file],.wp-core-ui input[type=number],.wp-core-ui input[type=password],.wp-core-ui input[type=search],.wp-core-ui input[type=tel],.wp-core-ui input[type=text],.wp-core-ui input[type=url],.wp-core-ui select,.wp-core-ui textarea{background-color:#fff;border-color:#dfdfdf;border-style:solid;border-width:1px;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none;color:#333;font-weight:400}.wp-core-ui input[type=date]:focus,.wp-core-ui input[type=email]:focus,.wp-core-ui input[type=file]:focus,.wp-core-ui input[type=number]:focus,.wp-core-ui input[type=password]:focus,.wp-core-ui input[type=search]:focus,.wp-core-ui input[type=tel]:focus,.wp-core-ui input[type=text]:focus,.wp-core-ui input[type=url]:focus,.wp-core-ui select:focus,.wp-core-ui textarea:focus{background:0 0;border-color:#aaa}.wp-core-ui input[type=search]{background-image:none;padding:6px}.fl-field-responsive-setting{display:inline-block;width:100%}.fl-field-responsive-setting-medium,.fl-field-responsive-setting-responsive{display:none}.fl-field-control-wrapper i.fl-field-responsive-toggle{padding:9px 0 0;position:absolute;left:-25px}i.fl-field-responsive-toggle{color:grey;display:inline-block;font-size:15px!important;height:auto;text-align:left;width:20px}.fl-builder-settings-fields input.text-full,.fl-builder-settings-fields textarea{width:100%}i.fl-field-responsive-toggle:hover{color:#000}.fl-builder-settings-fields .fl-text-field-add-value{min-width:50%;margin-top:.62em}.fl-field[data-type=shadow] .fl-field-control-wrapper{display:-ms-flexbox;display:flex}.fl-shadow-field .fl-color-picker{margin-bottom:15px;width:100%}.fl-color-picker{cursor:pointer}.fl-color-picker .fl-color-picker-clear{box-sizing:border-box}.fl-color-picker .fl-color-picker-clear:hover{background-color:#ededed}.colorpicker input{padding:0!important;font-size:11px!important;color:#fff!important;width:29px!important;height:auto!important;background:0 0!important;border:none!important}.colorpicker .colorpicker_hex input{width:45px!important}.fl-gradient-picker-type{display:-ms-flexbox;display:flex;margin-bottom:15px}.fl-gradient-picker-type input{margin:0!important}.fl-gradient-picker-type select{margin-bottom:0!important}.fl-gradient-picker-type-select{margin-right:10px!important}.fl-gradient-picker-colors{display:-ms-flexbox;display:flex}.fl-gradient-picker-color-row{display:-ms-flexbox;display:flex;margin-right:15px}.fl-color-picker.fl-gradient-picker-color,.fl-gradient-picker-color-row:last-child{margin-right:0}.fl-color-picker.fl-gradient-picker-color .fl-color-picker-color{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.fl-gradient-picker .fl-gradient-picker-stop input{border-top-left-radius:0!important;border-bottom-left-radius:0!important;margin:0!important}.fl-field[data-type=dimension] .fl-field-label label{padding-right:35px}.fl-field[data-type=dimension] .fl-field-control-wrapper{display:-ms-flexbox;display:flex}.fl-field[data-type=dimension] .fl-field-description{padding:9px 0 0 5px}.fl-field[data-type=dimension] .fl-field-responsive-setting{width:auto}.fl-dimension-field-units{border-radius:4px;box-shadow:0 2px 4px 0 rgba(0,0,0,.12);display:-ms-flexbox;display:flex;height:36px;margin:1px 1px 20px;position:relative;max-width:350px}.fl-dimension-field-units>*{border-right:1px solid #e6eaed;width:100%}body .fl-dimension-field-units>:last-child{border-right:none!important}body .fl-dimension-field-units>:first-child>input[type]{border-top-left-radius:4px!important;border-bottom-left-radius:4px!important}body .fl-dimension-field-units>:last-child>*{border-top-right-radius:4px!important;border-bottom-right-radius:4px!important}.fl-dimension-field-unit input[type],.fl-dimension-field-units .fl-field-unit-select{box-shadow:none!important;margin:0!important;border-radius:0!important}.fl-dimension-field-unit input{width:100%!important}.fl-dimension-field-unit input::-webkit-inner-spin-button,.fl-dimension-field-unit input::-webkit-outer-spin-button{-webkit-appearance:none}.fl-dimension-field-unit label{padding:5px 0 0;font-size:11px;font-weight:700;color:inherit!important;display:block;text-align:center;opacity:.5}.fl-dimension-field-unit .fl-field-popup-slider{margin-top:27px}i.fl-dimension-field-link{color:grey;font-size:15px!important;height:auto;text-align:left;width:20px}i.fl-dimension-field-link:hover{color:#000}i.fl-dimension-field-link.dashicons-editor-unlink,i.fl-dimension-field-link.dashicons-editor-unlink:hover{color:#0086b0}.fl-field-label .fl-dimension-field-link,.fl-lightbox-width-slim .fl-dimension-field-link{display:none}.fl-lightbox-width-slim .fl-field-label .fl-dimension-field-link{display:inline-block}.fl-field-control-wrapper .fl-dimension-field-link{padding:9px 0 0;left:-50px;position:absolute}.fl-dimension-field-unit-select{display:-ms-flexbox;display:flex;width:auto!important}.fl-field[data-type=unit] .fl-field-control-wrapper{display:-ms-flexbox;display:flex}.fl-field[data-type=unit] .fl-field-description{margin-left:7px!important;padding-top:9px}.fl-field[data-type=unit] .fl-field-responsive-setting{width:auto}.fl-unit-field-inputs{background:0 0;border-radius:4px;box-shadow:0 2px 4px 0 rgba(0,0,0,.12);display:-ms-flexbox;display:flex}.fl-unit-field-inputs .fl-field-unit-select,.fl-unit-field-inputs input[type]{box-shadow:none!important;margin:0!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}.fl-unit-field-inputs .fl-field-unit-select{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.fl-unit-field-inputs input::-webkit-inner-spin-button,.fl-unit-field-inputs input::-webkit-outer-spin-button{-webkit-appearance:none}.fl-unit-field-input{border-right:1px solid #e6eaed!important}body .fl-unit-field-input:last-child{border-right:none!important}body .fl-unit-field-input:last-child>*{border-top-right-radius:4px!important;border-bottom-right-radius:4px!important}.fl-unit-field-unit-select{display:-ms-flexbox;display:flex;width:auto!important}select.fl-field-unit-select{background-color:#E7EBEF!important;border-top-left-radius:0!important;border-bottom-left-radius:0!important}div.fl-field-unit-select{background-color:#E7EBEF!important;padding:9px 7px!important;width:100%}.fl-field-popup-slider{background:#fff;border-radius:4px;box-shadow:0 4px 25px 0 rgba(0,0,0,.18);display:none;margin-top:10px;padding:15px;position:absolute;left:0;right:0;z-index:9999}.fl-field-popup-slider-top{margin-top:0!important;top:-100%;transform:translateY(-10px)}.fl-field-popup-slider-input{background:#E7EBEF;cursor:pointer;height:4px;text-align:left;position:relative;border-radius:3px}.fl-field-popup-slider-input .ui-slider-handle{background:#fff;border:2px solid #3AA4CC;border-radius:100%;cursor:pointer;height:12px;width:12px;position:absolute;top:-6px;margin-left:-7px}.fl-field-popup-slider-input .ui-slider-handle:focus{outline:0}.fl-field-popup-slider-arrow{position:absolute;top:-22px}.fl-field-popup-slider-arrow:after{content:' ';border-color:transparent transparent #fff;border-style:solid;border-width:0 8px 8px;width:0;height:0}.fl-field-popup-slider-top .fl-field-popup-slider-arrow{top:auto;bottom:-24px}.fl-field-popup-slider-top .fl-field-popup-slider-arrow:after{border-bottom-width:0;border-top-width:8px;border-top-color:#fff}input[type=number].fl-field-popup-slider-focus{border:2px solid #00a0d2!important}.fl-font-field{display:-ms-flexbox;display:flex}.fl-font-field label{display:block!important;margin:0!important;padding:0 0 6px 12px}.fl-font-field .fl-font-field-font-wrapper{margin-right:8px;width:70%!important}.fl-font-field .fl-font-field-weight-wrapper{width:30%!important}.fl-compound-field{max-width:350px}.fl-compound-field-section-toggle{background:#E7EAEF;border-radius:4px;border-top:2px solid transparent;border-bottom:2px solid transparent;cursor:pointer;-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;height:32px;margin-bottom:8px;padding:0 12px}.fl-compound-field-section-toggle:hover{background:#dadfe5}.fl-compound-field-section-toggle .dashicons{font-size:15px;height:15px;margin-right:5px;width:15px}.fl-compound-field-section:last-child .fl-compound-field-section-toggle{margin-bottom:0}.fl-compound-field-section.fl-compound-field-section-visible{padding-bottom:12px}.fl-compound-field-section.fl-compound-field-section-visible:last-child{padding-bottom:0}.fl-compound-field-section-visible .fl-compound-field-section-toggle{background:0 0;border-top:2px solid #E7EBEF;border-radius:0}.fl-compound-field-section-visible .fl-compound-field-section-toggle:hover{background:0 0}.fl-compound-field-section-visible .fl-compound-field-section-toggle .dashicons:before{content:'\f347'}.fl-compound-field-row{display:none;padding-bottom:12px}.fl-compound-field-section-visible .fl-compound-field-row{display:-ms-flexbox;display:flex}.fl-compound-field-label{display:block!important;margin:0!important;padding:0 0 6px 12px}.fl-compound-field-label-bottom{padding:6px 0 0 12px}.fl-compound-field-label .fl-dimension-field-link{display:inline-block;padding:0 0 0 2px;position:relative;left:auto;top:-1px}.fl-compound-field-setting{padding-right:8px;width:100%}.fl-compound-field-setting:last-child{padding-right:0}.fl-compound-field-setting select{margin:0!important;width:100%}.fl-compound-field-setting .fl-unit-field-input input{width:100%!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}.fl-compound-field-setting .fl-unit-field-input{width:50%!important}.fl-compound-field-setting .fl-unit-field-input select.fl-field-unit-select{background-position:center right 2px!important;padding:2px 5px!important;width:100%;font-size:11px}.fl-typography-field .fl-font-field-font-wrapper{margin-right:8px!important}.fl-typography-field-spacing{width:calc(33.33% - 8px)}.fl-typography-field-transform{width:66.66%}.fl-typography-field-transform .fl-button-group-field-options{float:none}.fl-typography-field-transform .fl-button-group-field-option{width:100%;padding:0 7px}.fl-typography-field .fl-shadow-field{display:-ms-flexbox;display:flex}.fl-typography-field .fl-shadow-field .fl-color-picker{margin:0 8px 0 0;width:calc(33.33% - 8px)}.fl-typography-field .fl-shadow-field .fl-dimension-field-units{margin-left:0;margin-top:0;margin-right:0;width:66.66%}.fl-button-group-field-options{background:#E7EBEF;border-radius:4px;box-shadow:0 2px 4px 0 rgba(0,0,0,.12);display:-ms-flexbox;display:flex;float:left;height:36px;overflow:hidden}.fl-button-group-field-option{cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;padding:0 5px;border-radius:0;border:2px solid transparent;background:0 0}.fl-button-group-field-option:hover{top:0;background-color:transparent;color:#000;border:2px solid transparent}.fl-button-group-field-option:focus{top:0;background-color:transparent;border:2px solid #00a0d2;color:#333}.fl-button-group-field-option:first-child{border-top-left-radius:3px;border-bottom-left-radius:3px}.fl-button-group-field-option:last-child{border-top-right-radius:3px;border-bottom-right-radius:3px}.fl-button-group-field-option[data-selected="1"]{background-color:#fff;color:#000}.fl-button-group-field-option i{color:#6B6E75}.fl-button-group-field-option:hover i{color:#333}.fl-compound-field-cell{width:50%;display:block;float:left;padding-top:13px}.fl-compound-field-cell:first-child{padding-right:4px}.fl-compound-field-cell:last-child{padding-left:4px}.fl-compound-field-cell label{padding:5px 0 0;font-size:11px;font-weight:700;color:inherit!important;display:block;text-align:center;opacity:.5}.fl-shape-transform-field .fl-compound-field-row{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.fl-shape-transform-field .fl-compound-field-row>*{width:auto;-ms-flex:1 1 auto;flex:1 1 auto}.fl-shape-transform-field .fl-compound-field-row>:first-child{-ms-flex:0 0 auto;flex:0 0 auto}.fl-shape-transform-field .fl-shape-orientation-controls{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.fl-shape-transform-field .fl-shape-orientation-controls>*{-ms-flex:0 0 auto;flex:0 0 auto}.fl-shape-transform-field .fl-shape-orientation-controls .fl-button-group-field>*,.fl-shape-transform-field .fl-shape-orientation-controls .fl-button-group-field>* button{border-radius:0}.fl-shape-orientation-controls .fl-button-group-field:first-child>*,.fl-shape-orientation-controls .fl-button-group-field:first-child>* button{border-top-left-radius:4px;border-bottom-left-radius:4px}.fl-shape-orientation-controls .fl-button-group-field:last-child>*,.fl-shape-orientation-controls .fl-button-group-field:last-child>* button{border-top-right-radius:4px;border-bottom-right-radius:4px}.fl-builder-custom-field{background:#fff;border:2px solid transparent;border-radius:4px;padding:7px 10px;box-shadow:0 2px 4px 0 rgba(0,0,0,.12);min-height:36px;box-sizing:border-box}.fl-builder-field-multiple .fl-builder-custom-field{cursor:move}.fl-builder-custom-field a{color:#21759b!important;text-decoration:underline!important}.fl-builder-custom-field a:hover{color:#d54e21!important}.fl-builder-custom-field label.error{margin-top:5px}.fl-photo-field .fl-photo-preview{display:-ms-flexbox;display:flex}.fl-photo-field .fl-photo-select,.fl-photo-field.fl-photo-empty .fl-photo-preview{display:none}.fl-photo-field.fl-photo-empty .fl-photo-select{display:block}.fl-photo-field .fl-photo-preview-img{line-height:0;margin:5px 0}.fl-photo-field .fl-photo-preview-img img{max-width:60px}.fl-photo-field .fl-photo-preview select{margin:8px 0 8px 10px;width:calc(100% - 10px)}.fl-photo-field.fl-photo-no-attachment .fl-photo-preview select{display:none}.fl-photo-field .fl-photo-preview-filename{display:none;font-size:13px;font-weight:700;margin:5px 0 9px 11px}.fl-photo-field.fl-photo-no-attachment .fl-photo-preview-filename{display:inline-block;word-break:break-all}.fl-multiple-photos-field .fl-multiple-photos-select,.fl-multiple-photos-field.fl-multiple-photos-empty .fl-multiple-photos-add,.fl-multiple-photos-field.fl-multiple-photos-empty .fl-multiple-photos-count,.fl-multiple-photos-field.fl-multiple-photos-empty .fl-multiple-photos-edit,.fl-multiple-photos-lightbox .gallery-settings,.fl-photo-field.fl-photo-no-attachment .fl-photo-edit{display:none}.fl-photo-field .fl-photo-edit{margin:0 0 0 11px}.fl-photo-field .fl-photo-remove,.fl-photo-field .fl-photo-replace{margin:0 0 0 8px}.fl-builder-edit .media-modal{z-index:9999991}.fl-builder-edit .media-modal-backdrop{z-index:999999}.fl-builder-edit .media-frame{-webkit-backface-visibility:hidden;backface-visibility:hidden}.fl-builder-edit .media-modal-content h1{font-family:inherit}.fl-builder-edit form#wp-link,.popover[class*=tour-],ul.as-list{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.fl-builder-edit .media-modal-content .thumbnail{padding:0;border:none;border-radius:0}.fl-builder-edit .media-modal-content .attachment-preview .thumbnail{margin-bottom:0}.fl-builder-edit .media-modal-content .attachment-preview .thumbnail img{max-width:none}.fl-builder-edit button.media-modal-close{position:absolute;box-shadow:none;-webkit-box-shadow:none}.fl-builder-edit .media-frame.hide-menu{visibility:visible}span.select2-container.select2-container--open{z-index:9999999}.fl-multiple-photos-field .fl-multiple-photos-add{margin:0 0 0 8px}.fl-multiple-photos-field.fl-multiple-photos-empty .fl-multiple-photos-select{display:inline}.fl-multiple-photos-count{font-weight:700;margin-bottom:3px}.fl-video-field .fl-video-select,.fl-video-field.fl-video-empty .fl-video-preview{display:none}.fl-video-field.fl-video-empty .fl-video-select{display:block}.fl-video-field .fl-video-preview-img{float:left;line-height:0;margin:5px 0}.fl-video-field .fl-video-preview-img img{max-width:60px}.fl-video-field .fl-video-preview-img .dashicons.dashicons-media-video{display:block;font-size:60px;height:60px;line-height:60px;width:60px}.fl-video-field .fl-video-preview-filename{display:inline-block;font-size:14px;font-weight:700;margin:7px 0 5px 11px}.fl-video-field .fl-video-remove,.fl-video-field .fl-video-replace{margin:0 0 0 11px}.fl-multiple-audios-field .fl-multiple-audios-select,.fl-multiple-audios-field.fl-multiple-audios-empty .fl-multiple-audios-add,.fl-multiple-audios-field.fl-multiple-audios-empty .fl-multiple-audios-edit{display:none}.fl-multiple-audios-field.fl-multiple-audios-empty .fl-multiple-audios-select{display:block}.fl-multiple-audios-field .fl-multiple-audios-add{margin:0 0 0 8px}.fl-icon-field .fl-icon-select,.fl-icon-field.fl-icon-empty .fl-icon-preview{display:none}.fl-icon-field.fl-icon-empty .fl-icon-select{display:block}.fl-icon-field .fl-icon-preview i{display:inline-block;font-size:28px;margin:10px 10px 9px;vertical-align:middle}.fl-icon-field .fl-icon-remove{margin:0 0 0 8px}.fl-builder-hidden-editor{display:none}.fl-builder-settings .wp-switch-editor{border-radius:0;color:#333;margin-top:2px}.fl-builder-settings .mce-toolbar .mce-btn-group .mce-btn{margin:2px 0}.fl-builder-settings .mce-menubtn.mce-fixed-width button{width:100px}.fl-builder-settings .mce-menubtn.mce-fixed-width span{width:100%}.mce-close:active,.mce-close:hover,.mce-toolbar .mce-btn button:active,.mce-toolbar .mce-btn button:hover,.mce-window .mce-btn button:active,.mce-window .mce-btn button:hover{background:0 0;border:none}.wp-core-ui .quicktags-toolbar input.button.button-small{margin:1px!important}.wp-editor-container textarea.wp-editor-area{background:0 0;border:none;padding:10px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.fl-builder-edit form#wp-link{color:#000;font-size:13px}.fl-builder-edit form#wp-link #link-options label{display:block;margin-bottom:2px}.fl-builder-edit form#wp-link #link-options label span{padding-right:10px;vertical-align:middle}.fl-builder-edit form#wp-link #link-options input[type=text]{display:inline-block;height:auto;margin:5px 0 0;padding:3px 5px;width:80%}.fl-builder-edit form#wp-link .query-results{top:225px}.fl-code-field{border:1px solid #E6E6E6;border-left:none}.ace_editor,.ace_editor *{font-family:Monaco,Menlo,"Ubuntu Mono","Droid Sans Mono",Consolas,monospace!important;font-size:12px!important;font-weight:400!important;letter-spacing:0!important}.fl-layout-field-option{border:2px solid #d9d9d9;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;box-sizing:border-box!important;-moz-box-sizing:border-box!important;-webkit-box-sizing:border-box!important;cursor:pointer;float:left;line-height:0;max-width:23%;margin:0 1% 2%;padding:5px}.fl-layout-field-option-selected,.fl-layout-field-option:hover{border-color:red}.fl-layout-field-option img{max-width:100%}.fl-link-field .fl-link-field-input-wrap{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.fl-link-field-input{width:auto!important;-ms-flex:1 1 100%;flex:1 1 100%}.fl-link-field .fl-link-field-input-wrap button{-ms-flex:0 0 0%;flex:0 0 0%;height:36px;margin:1px 1px 1px 5px}.fl-link-field-options-wrap{padding:7px 0 0 12px}.fl-link-field-options-wrap label{margin-right:7px}.fl-link-field-options-wrap span{font-size:11px;font-weight:700;color:inherit!important;text-align:center;opacity:.5}.fl-link-field-search{display:none;border:2px solid #e6eaed;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;margin:4px 0 0;padding:10px}.fl-link-field-search-title{display:block;margin:0 0 3px 2px}.fl-link-field-search-cancel{margin-top:6px}.fl-link-field-search input{box-shadow:none!important;width:100%!important;padding:3px 9px!important}.fl-link-field-search #as-original-link-search{width:100%}.fl-field-connections-toggle{padding:10px 0}.fl-field[data-type=editor] .fl-field-connections-toggle,.fl-field[data-type=code] .fl-field-connections-toggle{-ms-flex-align:start;align-items:flex-start}.fl-field[data-type=link] .fl-field-connections-toggle{height:24px;margin-top:1px;-ms-flex-align:start;align-items:flex-start}.fl-field[data-type=link] .fl-field-connection{bottom:25px}.fl-field-connections-menu[data-field=fl-field-text]{margin-top:30px}.fl-help-tooltip{display:inline-block;position:relative}.fl-lightbox-width-slim .fl-help-tooltip{position:static}.fl-help-tooltip-icon{color:#999!important;cursor:pointer;font-size:15px!important;padding:5px;vertical-align:middle}.fl-help-tooltip-text{box-sizing:border-box;background:#fff;border:1px solid #ccc;box-shadow:0 0 5px #ccc;-moz-box-shadow:0 0 5px #ccc;-webkit-box-shadow:0 0 5px #ccc;display:none;font-weight:400;left:23px;padding:10px 13px;position:absolute;top:-6px;width:250px;z-index:1000;border-radius:4px}.fl-lightbox-width-slim .fl-help-tooltip-text{top:30px;left:0;width:100%}.fl-field-control .fl-form-field{margin-bottom:0}.fl-form-field[data-preview-text=icon]{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.fl-form-field-preview-text i{display:inline-block;font-size:18px;line-height:22px;margin-right:10px}.fl-builder-field-actions{padding-left:0!important;padding-right:0!important;text-align:center;width:85px}.fl-builder-field-actions i{color:#999!important;cursor:pointer;font-size:13px!important;line-height:29px!important;width:16px}.fl-builder-field-actions i:hover{color:#000!important}.fl-builder-field-actions i.fl-builder-field-copy,.fl-builder-field-actions i.fl-builder-field-delete{margin-left:5px}.fl-builder-field-actions i.fl-builder-field-move{cursor:move}.fl-builder-field-dd-helper{background:#ccc;height:30px!important;float:left;width:130px!important}.fl-builder-field-dd-zone{border:1px dashed #ccc;height:30px}.fl-builder-field-actions-single .fl-builder-field-delete,.fl-builder-field-actions-single .fl-builder-field-move{display:none!important}.fl-builder-field-multiple .fl-builder-field-actions,.fl-builder-field-multiple .fl-field-control,.fl-builder-field-multiple .fl-field-label{padding-top:2px!important;padding-bottom:2px!important}.fl-builder-field-multiple .fl-builder-field-actions{min-width:70px!important}.fl-builder-field-multiple[data-field=icons] .fl-builder-field-actions{width:70px!important}.fl-builder-field-multiple.ui-sortable-helper .fl-field-control{width:60%}.fl-builder-field-multiple.ui-sortable-helper .fl-builder-field-actions{display:none}.fl-builder-widget-settings input{display:inline-block!important;margin:5px 10px 8px!important}.fl-builder-lightbox-loading{background:url(../img/ajax-loader.svg) center center no-repeat;height:100px}.fl-builder-settings .error,.fl-builder-settings input.error{color:#d03436!important}.fl-builder-settings label.error,.fl-builder-settings p.error{color:#d03436;display:block;margin-top:5px}.fl-builder-settings .fl-form-table .fl-field-description{color:#464646;font-style:normal;margin-left:2px}.fl-lightbox .fl-field-connection{right:-1px}.fl-lightbox .fl-field-connection-content{border:2px solid transparent!important;background:#e7ebef!important}.fl-field-connection-content .fl-field-connection-label{color:#676f7a!important}.fl-field-connections-toggle{pointer-events:none;width:20px;right:-25px}.has-scrollbar .fl-field-connections-toggle{right:-22px}.fl-field-connections-toggle-open{transform:none!important}.fl-field-connections-toggle i{pointer-events:auto;color:#abb1ba;font-size:13px!important;transition-property:transform;transition-duration:.15s}.fl-field-connections-toggle-open i{transform:rotate(-45deg)}ul.as-selections{background-color:#fff;border:none;border-radius:4px;box-shadow:none;color:#333;font-size:12px;height:auto;line-height:15px;margin:1px;outline:0;padding:3px;width:auto}ul.as-selections.loading{background:url(../img/ajax-loader-small.svg) 98% center no-repeat}ul.as-selections li.as-selection-item{background:#d4eaf6;border:none;font-size:11px;line-height:14px;padding:8px 15px;border-radius:4px;margin:2px}ul.as-selections li.as-selection-item.blur{background:#f4f4f4}ul.as-selections li.as-selection-item a.as-close{line-height:12px}ul.as-selections li.as-original{margin:0}ul.as-selections li.as-original input{height:auto;font-size:12px;margin:0;padding:0;box-shadow:none}ul.as-list{margin:0;font-size:13px;color:#000;background-color:#fff;background-color:rgba(255,255,255,.95);z-index:2;box-shadow:0 0 10px rgba(0,0,0,.1);border:none;border:1px solid #dfdfdf;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px}li.as-message,li.as-result-item{border:none}li.as-result-item.active{background:#e5e5e5;border-radius:0;color:#333;text-shadow:none}li.as-result-item em{background:0 0!important;color:#333!important;font-size:12px;padding:0!important;font-weight:700}.fl-custom-query-filter{display:none}.fl-custom-query .fl-field[data-type=suggest] select{margin-bottom:5px;width:100%}.fl-builder-service-settings{position:relative}.fl-builder-service-error{color:red!important;padding:15px 0 0}.fl-builder-service-account-delete{color:red!important;margin-left:10px;position:relative;top:2px}.fl-lightbox-width-slim .fl-builder-service-account-delete{display:block;padding-top:7px}#fl-field-visibility_user_capability .fl-field-description,.fl-builder-service-connect-row .fl-field-description{background:#f0f0f0;color:#333!important;display:block;float:none;margin:10px 0 0;padding:10px}#fl-field-visibility_user_capability .fl-field-description a,.fl-builder-service-connect-row .fl-field-description a{color:#21759b!important;text-decoration:underline!important}.fl-ordering-field-option{background:#fff;border:1px solid #dfdfdf;border-radius:3px;cursor:move;margin-bottom:5px;padding:5px 10px}.fl-ordering-field-option .fa{color:#ccc;float:right;line-height:16px}#tiptip_holder{z-index:1000000}#tiptip_holder.tip_top #tiptip_arrow_inner{border-top-color:#333}#tiptip_holder.tip_bottom #tiptip_arrow_inner{border-bottom-color:#333}#tiptip_holder.tip_right #tiptip_arrow_inner{border-right-color:#333}#tiptip_holder.tip_left #tiptip_arrow_inner{border-left-color:#333}#tiptip_content{background:#333;box-shadow:none}.fl-builder-getting-started-video{line-height:0!important;padding:10px}.fl-builder-getting-started-video iframe{border:none;height:326px;width:100%}.fl-builder-tour-actions .fl-builder-actions-title{font-size:14px!important;line-height:19px}.fl-builder-tour-mask{bottom:0;left:0;position:fixed;right:0;top:0;z-index:100000000}.fl-builder-tour-dimmed{background:rgba(0,0,0,.7);bottom:0;left:0;position:absolute;right:0;top:0}body>.fl-builder-tour-dimmed{position:fixed}.tour-backdrop{z-index:110000}.popover[class*=tour-]{border:1px solid #ccc;border-radius:0;box-shadow:0 0 40px rgba(0,0,0,.3);color:#666;font-size:13px;font-weight:400;line-height:18px;max-width:none;padding:0;width:300px;z-index:100000001}.popover[class*=tour-].bottom>.arrow{border-bottom-color:#ccc}.popover[class*=tour-].bottom>.arrow:after{border-bottom-color:#f7f7f7}.popover[class*=tour-] .popover-title{border-radius:0;color:#333;letter-spacing:normal;text-transform:none}.popover[class*=tour-] .fa-times{color:#b3b3b3;cursor:pointer;font-size:16px;padding:5px;position:absolute;right:3px;top:2px}.popover[class*=tour-] .fa-times:hover{color:#666}.popover[class*=tour-] .popover-content{border-bottom:1px solid #d9d9d9;padding:13px 15px}.popover[class*=tour-] .fl-builder-tour-next{display:block;float:none;width:100%}.popover-navigation button{min-height:36px}.fl-builder-shortcode-mask-wrap{position:relative}.fl-builder-shortcode-mask{bottom:-1px;left:-1px;position:absolute;right:-1px;top:-1px;z-index:1}.fl-builder--search{border:2px solid transparent;position:relative;padding:0;width:54px;transition-property:width;transition-delay:.1s;transition-duration:.15s}.fl-builder--search.is-expanded{border:2px solid #00A0D0}.fl-builder--search input[type=text],.fl-builder--search input[type=text]:focus{background-color:transparent;border:none!important;box-sizing:border-box;width:100%;font-size:16px;text-align:center}.fl-builder--search:before{display:-ms-flexbox;display:flex;top:0;left:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;content:"\f002";font:normal normal normal 14px/1 Font Awesome\ 5 Free;text-align:center;width:100%;height:100%;position:absolute;pointer-events:none;color:rgba(128,128,128,.6);font-size:17px;opacity:1;transition-property:opacity;transition-duration:.15s}.fl-builder--main-menu-panel,.fl-builder-ui-keyboard-shortcuts{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif!important}.fl-builder--search.has-text:before,.fl-builder--search.is-expanded:before{opacity:0}.fl-builder--search input::-webkit-input-placeholder{color:rgba(128,128,128,0)!important;transition:color .25s}.fl-builder--search input:focus::-webkit-input-placeholder{color:rgba(128,128,128,.4)!important}.fl-builder--search .search-label{cursor:text}.fl-builder--search .search-clear{display:none;padding:10px 10px 10px 30px;color:#a7a7a7;font-size:12px;position:absolute;right:0;top:0;background-color:#eff1f2;background:linear-gradient(to left,#e4e7ea,#e4e7ea 75%,rgba(228,231,234,0))}.fl-builder--search.has-text .search-clear,.fl-builder--search.is-expanded input{display:inline-block}.fl-builder--search:hover .search-clear{color:#888;background-color:#eff1f2;background:linear-gradient(to left,#dadfe5,#dadfe5 75%,rgba(218,223,229,0))}.fl-builder--search.is-expanded{width:246px}@keyframes fl-builder-show-menu-item{from{transform:translateY(10px) scale(.8);opacity:0}to{transform:translateX(0) translateY(0) scale(1);opacity:1}}.fl-builder--main-menu-panel{display:none;box-sizing:border-box;position:fixed;top:calc(45px + 10px);left:10px;width:360px;color:#222;max-height:calc(100% - 66px);border-radius:4px;background:#fff;border:none;border-top:3px solid #00a0d2;box-shadow:0 11px 45px 8px rgba(0,0,0,.1);font-size:14px!important;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:10000009;pointer-events:auto}.fl-builder--main-menu-panel.is-showing{display:-ms-flexbox;display:flex}.fl-builder--main-menu-panel:before,.fl-theme-builder-preview-select-open .fl-theme-builder-preview-select-items:before{bottom:100%;right:6px;content:" ";height:0;width:0;position:absolute;pointer-events:none;border:solid;border-color:rgba(255,255,255,0);border-bottom-color:#00a0d2;border-width:13px;margin-left:-13px}.fl-builder--main-menu-panel-views{-ms-flex:1 1 100%;flex:1 1 100%;overflow:auto}.fl-builder--main-menu-panel-mask{display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000119}.fl-builder--main-menu-panel .fl-builder--tabs{padding-left:20px;padding-top:15px}.fl-builder--main-menu-panel-view{display:none}.fl-builder--main-menu-panel-view.is-showing{display:block}.fl-builder--main-menu-panel-view-title{font-size:24px;font-weight:600;padding:25px 22px 0;line-height:1;white-space:nowrap}.fl-builder--main-menu-panel-view-title .title-accessory{float:right;color:#b1b1b1}.fl-builder--main-menu-panel-view-title .title-accessory>i{font-size:20px!important;width:25px!important}.fl-builder--main-menu-panel-view-title .title-accessory>i:hover{color:#222}.fl-builder--main-menu-panel-view-title .pop-view{padding:10px;margin-left:-10px;opacity:.5;font-size:25px;font-weight:400;cursor:pointer;background:0 0;outline:0;border:none;color:inherit}.fl-builder--main-menu-panel-view-title .pop-view:focus{outline:0;top:0;background:#E5EAED!important}.fl-builder--menu-item:before{display:block;content:"";float:none;clear:both}.fl-builder--menu-item{color:inherit;text-align:left;box-sizing:border-box;display:block;padding:10px 15px;margin:0 10px;width:calc(100% - 20px);background:0 0;border:none;border-radius:4px;font-size:14px;line-height:1.1;cursor:pointer;opacity:1;text-transform:none}.fl-builder--menu-item:hover{background:#eaf1f8;border:none;text-decoration:none;color:#000}.fl-builder--selector-menu .fl-builder--menu-item:hover{background:#fff}.fl-builder--menu-item-accessory{float:right;text-align:center;display:inline-block;min-width:40px;font-size:14px}.fl-builder--menu-item-accessory.view-arrow{font-size:18px}.fl-builder--menu{padding:0;margin:20px 0}.fl-builder--menu hr{margin:8px 0;background:#e6eaed!important;height:1px;border:none}.fl-builder--menu .fl-builder-video-wrap{padding:0 10px 10px}.fl-revision-list-item{display:-ms-flexbox;display:flex}.fl-revision-list-item-text{padding-left:15px}.fl-revision-list-item-date{padding-bottom:5px}.fl-builder--revision-actions{display:none;position:fixed;top:4px;left:4px;z-index:100008;padding:4px 4px 6px;-ms-flex-pack:center;justify-content:center;background:#fff;border-radius:4px}.fl-builder--revision-actions *{margin-right:5px}.fl-builder--revision-actions :last-child{margin:0}.fl-builder--menu-item[data-event=noRevisionsMessage]:hover{background:0 0;box-shadow:none;cursor:default}.fl-no-revisions-message-title{font-weight:700;margin-bottom:10px}.fl-no-revisions-message-text{line-height:22px}.fl-builder-module-placeholder-message{border:1px dashed #ccc;overflow:hidden;padding:20px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.fl-field-connections-menu{z-index:999999}.fl-field[data-type=editor] .fl-field-connections-toggle,.fl-field[data-type=code] .fl-field-connections-toggle{right:5px!important}.fl-field-connections-inline-toggle{display:inline;color:#9a9b9c;margin-left:6px}.fl-field-connections-inline-toggle i{transition-property:transform;transition-duration:.15s}.fl-field-connections-inline-toggle.fl-field-connections-toggle-open i{transform:rotate(45deg)}.fl-builder-add-ultimate-presets-button,.fl-builder-add-ultimate-rows-button,.fl-builder-pp-add-template-button,.pp-preview-button,.uabb-live-preview-button{display:none!important}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block;-ms-touch-action:none;touch-action:none;background:0 0;transition-property:background;transition-duration:.15s}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-ne,.ui-resizable-nw,.ui-resizable-se,.ui-resizable-sw{width:12px;height:12px}.ui-resizable-se{cursor:se-resize;right:-4px;bottom:-4px}.ui-resizable-sw{cursor:sw-resize;left:-4px;bottom:-4px}.ui-resizable-nw{cursor:nw-resize;left:-4px;top:-4px}.ui-resizable-ne{cursor:ne-resize;right:-4px;top:-4px}.fl-builder-resizable-iframe-fix{position:absolute;top:0;right:0;bottom:0;left:0;z-index:100000000}.fl-builder-panel .ui-resizable-handle:active,.fl-builder-panel .ui-resizable-handle:hover,.fl-lightbox .ui-resizable-handle:active,.fl-lightbox .ui-resizable-handle:hover{background:#00a0d2}.fl-builder-panel .ui-resizable-n,.fl-builder-panel .ui-resizable-s,.fl-lightbox .ui-resizable-n,.fl-lightbox .ui-resizable-s{height:6px}.fl-builder-panel .ui-resizable-n,.fl-lightbox .ui-resizable-n{top:-3px}.fl-builder-panel .ui-resizable-s,.fl-lightbox .ui-resizable-s{bottom:-3px}.fl-builder-panel .ui-resizable-e,.fl-builder-panel .ui-resizable-w,.fl-lightbox .ui-resizable-e,.fl-lightbox .ui-resizable-w{width:6px}.fl-builder-panel .ui-resizable-e,.fl-lightbox .ui-resizable-e{right:-3px}.fl-builder-panel .ui-resizable-w,.fl-lightbox .ui-resizable-w{left:-3px}.fl-lightbox .ui-resizable-ne,.fl-lightbox .ui-resizable-nw,.fl-lightbox .ui-resizable-se,.fl-lightbox .ui-resizable-sw{background:0 0;border:6px solid transparent}.fl-lightbox .ui-resizable-ne:active,.fl-lightbox .ui-resizable-ne:hover,.fl-lightbox .ui-resizable-nw:active,.fl-lightbox .ui-resizable-nw:hover,.fl-lightbox .ui-resizable-se:active,.fl-lightbox .ui-resizable-se:hover,.fl-lightbox .ui-resizable-sw:active,.fl-lightbox .ui-resizable-sw:hover{background:0 0;border-color:#00a0d2}.fl-lightbox .ui-resizable-ne{border-bottom:none;border-left:none;border-top-right-radius:4px}.fl-lightbox .ui-resizable-nw{border-bottom:none;border-right:none;border-top-left-radius:4px}.fl-lightbox .ui-resizable-se{border-top:none;border-left:none;border-bottom-right-radius:4px}.fl-lightbox .ui-resizable-sw{border-top:none;border-right:none;border-bottom-left-radius:4px}.fl-builder-ui-keyboard-shortcuts{display:none;position:fixed;top:0;left:0;bottom:0;right:0;z-index:999999;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;background:rgba(50,50,50,.88);font-size:15px;line-height:1.3;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fl-builder-ui-keyboard-shortcuts.is-showing{display:-ms-flexbox;display:flex}.fl-builder-ui-keyboard-shortcuts-content{box-sizing:border-box;width:500px;background:#f5f7f9;border-radius:4px;padding:30px 0 0;box-shadow:0 10px 30px rgba(0,0,0,.15)}.fl-builder-ui-keyboard-shortcut-item{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;padding:12px 40px}.fl-builder-ui-keyboard-shortcut-item:nth-child(even){background:#eef2f5}.fl-builder-ui-shortcut-keycode{margin-left:auto;text-transform:uppercase;letter-spacing:2px}.fl-builder-ui-keyboard-shortcust-footer{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:center;justify-content:center;padding:10px}.dismiss-shortcut-ui{padding:10px;border-radius:4px;background:#fff;color:#000;font-size:14px;border:2px solid #fff}.dismiss-shortcut-ui:focus,.dismiss-shortcut-ui:hover{top:0;color:#000;background:#eef2f5;border:2px solid #eef2f5}.fl-builder-ui-skin--dark .fl-builder--main-menu-panel,.fl-builder-ui-skin--dark .fl-builder--preview-actions,.fl-builder-ui-skin--dark .fl-builder--search-results-panel,.fl-builder-ui-skin--dark .fl-builder-panel,.fl-builder-ui-skin--dark .fl-lightbox,body.fl-builder-ui-skin--dark .fl-builder-bar .fl-builder-bar-content{background:#23282d;color:#b4b9be;border-color:#1d1d1d}.fl-builder-ui-skin--dark .fl-builder--panel-header{color:#b4b9be;border-bottom-color:#1d1d1d;border-top-color:#1d1d1d}.fl-builder-ui-skin--dark .fl-builder-panel.fl-builder-ui-pinned .fl-builder--panel-header{border-top-color:#1d2227}.fl-builder-ui-skin--dark .fl-builder--main-menu-panel:before{border-bottom-color:#1d1d1d}.fl-builder-ui-skin--dark .fl-builder--panel-arrow polygon{fill:#1d1d1d}.fl-builder-ui-skin--dark .fl-builder-panel-search .fl-builder-panel-search-input{background:#24282e}.fl-builder-ui-skin--dark .fl-responsive-preview-content{background:#131619}.fl-builder-ui-skin--dark .fl-form-table th{background:#23282d!important;color:#7d8690}.fl-builder-ui-skin--dark .fl-builder--preview-actions .device-icons,.fl-builder-ui-skin--dark .fl-builder-button{background:#2c333a}.fl-builder-ui-skin--dark .fl-builder-button:focus{background:#131a22}.fl-builder-ui-skin--dark .fl-builder-button.fl-builder-button-primary{color:#fff!important;fill:#fff!important;background:#00A0D2}.fl-builder-ui-skin--dark .fl-builder-button.fl-builder-buy-button,.fl-builder-ui-skin--dark .fl-builder-button.fl-builder-feedback-button,.fl-builder-ui-skin--dark .fl-builder-button.fl-builder-upgrade-button{background-color:#F7A407;color:#fff!important}.fl-builder-ui-skin--dark .fl-builder-button.fl-builder-button-silent:focus{border:2px solid #00a0d2!important}.fl-builder-ui-skin--dark .fl-builder-content-panel--button:hover,.fl-builder-ui-skin--dark .fl-builder-content-panel-button{color:#00A0D2!important}.fl-builder-ui-skin--dark .fl-builder--menu>a:hover,.fl-builder-ui-skin--dark .fl-builder--menu>button:hover{background:#101215!important}.fl-builder-ui-skin--dark .fl-builder--menu>a:focus,.fl-builder-ui-skin--dark .fl-builder--menu>button:focus{background:#101215!important;color:#fff!important}.fl-builder-ui-skin--dark .fl-builder-bar-title{border-color:#101215}.fl-builder-ui-skin--dark .fl-builder-bar-title:hover{background-color:#181b1f}.fl-builder-simple.fl-builder-ui-skin--dark .fl-builder-bar-title:hover{background-color:transparent}.fl-builder-ui-skin--dark .fl-builder-layout-title{color:#c6cdd6}.fl-builder-ui-skin--dark .fl-builder-bar-title-caret i,.fl-builder-ui-skin--dark .fl-builder-layout-pretitle,.fl-builder-ui-skin--dark .fl-theme-builder-preview-select .fl-theme-builder-preview-select-title{color:#7d8690}.fl-builder-ui-skin--dark button.fl-builder-button.fl-builder-bar-title-caret:focus{background-color:#101215!important}.fl-builder-ui-skin--dark .fl-builder--search:before{color:rgba(162,173,184,.73)}.fl-builder-ui-skin--dark .fl-builder--search input:focus::-webkit-input-placeholder{color:rgba(162,173,184,.73)!important}.fl-builder-ui-skin--dark .fl-builder--search .search-clear{color:rgba(162,173,184,.5);background-color:#e4e4e4;background:linear-gradient(to left,#383f46,#383f46 75%,rgba(56,63,70,0))}.fl-builder-ui-skin--dark .fl-builder--menu hr{background-color:#23282d!important;border:none}.fl-builder-ui-skin--dark .fl-builder--tabs{border-color:#383f46!important}.fl-builder-ui-skin--dark .fl-builder--tabs .is-showing,.fl-builder-ui-skin--dark .fl-builder-settings-tabs a.fl-active,.fl-builder-ui-skin--dark .fl-builder-settings-tabs-more.fl-contains-active{color:#fff!important;fill:#fff!important;background:#181b20!important}.fl-builder-ui-skin--dark .fl-builder--tabs :focus{background-color:#101215!important;color:#fff!important}.fl-builder-ui-skin--dark .fl-builder--tabs .is-showing:focus{color:#00a0d2!important}.fl-builder-ui-skin--dark .fl-builder--menu-item:hover{background:#383f46;color:#a8b3bf}.fl-builder-ui-skin--dark .fl-builder--menu * .fl-builder--menu-item-accessory,.fl-builder-ui-skin--dark .fl-builder-blocks-section-group-name{color:#7d8690}.fl-builder-ui-skin--dark .fl-builder--selector-display{color:#c6cdd6;background:url(../img/svg/select-arrow-down-alt2-light.svg) center right 10px no-repeat #1a1b22!important}.fl-builder-ui-skin--dark .fl-builder--selector-display-label{color:#b5becb}.fl-builder-ui-skin--dark .fl-builder-panel-search-input input{border-color:#5b656f;color:#b8c2ce;background:#171b1f!important}.fl-builder-ui-skin--dark .fl-builder--selector-display-label:focus,.fl-builder-ui-skin--dark .fl-builder-panel-search-input input:focus{border-color:#00a0d2}.fl-builder-ui-skin--dark .fl-builder--group-label{color:#aaafb5!important;background:#24282e}.fl-builder-ui-skin--dark .fl-builder--category-select .fl-builder--selector-menu{border-color:#101215!important;color:#7c858e;background-color:#101215}.fl-builder-ui-skin--dark .fl-builder--category-select .fl-builder--selector-menu:before{border-bottom-color:#101215}.fl-builder-ui-skin--dark .fl-builder--menu>a,.fl-builder-ui-skin--dark .fl-builder--menu>button,.fl-builder-ui-skin--dark .fl-builder--menu>span{color:#a1adb9}.fl-builder-ui-skin--dark .fl-builder--category-select .fl-builder--selector-menu .fl-builder--menu-item:hover{background:#23282d!important;color:#a1adb9}.fl-builder-ui-skin--dark .fl-builder--category-select .fl-builder--selector-menu .fl-builder--menu-item:focus{background:#23282d!important;color:#00a0d2!important}.fl-builder-ui-skin--dark .fl-builder-panel-drag-handle{fill:#5b656f}.fl-builder-ui-skin--dark .fl-builder--template-collection-section-header,.fl-builder-ui-skin--dark .fl-builder-blocks-section .fl-builder-blocks-section-header,.fl-builder-ui-skin--dark .fl-builder-settings-section-header{background-color:#191b21;border-color:#191b21}.fl-builder-ui-skin--dark .fl-builder--template-collection-section-name,.fl-builder-ui-skin--dark .fl-builder--user-templates-section-name,.fl-builder-ui-skin--dark .fl-builder-blocks-section .fl-builder-blocks-section-title,.fl-builder-ui-skin--dark .fl-builder-settings-fields .fl-builder-settings-title{color:#7d8690!important;fill:#7d8690;background:#24282e}.fl-builder-ui-skin--dark .fl-builder-settings-fields .fl-builder-settings-title:focus{border-color:#7d8690}.fl-builder-ui-skin--dark .fl-builder-blocks-section-content .fl-builder-block,.fl-builder-ui-skin--dark .fl-user-template{color:#b8c2ce}.fl-builder-ui-skin--dark .fl-builder-block:hover .fl-builder-block-content,.fl-builder-ui-skin--dark .fl-user-template:hover{background:#171b1f;color:#fff}.fl-builder-ui-skin--dark .fl-builder-block:hover i,.fl-builder-ui-skin--dark .fl-user-template:hover i{color:#6d7782!important}.fl-builder-ui-skin--dark .fl-builder-block:hover a:hover i,.fl-builder-ui-skin--dark .fl-user-template:hover a:hover i{color:#9eacbb!important}.fl-builder-ui-skin--dark .fl-builder-block .fl-builder-block-icon{fill:#b5becb}.fl-builder-ui-skin--dark .fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col,.fl-builder-ui-skin--dark .fl-builder-block:hover .fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col{background:#7d8690}.fl-builder-ui-skin--dark .fl-user-templates{border-color:#101215}.fl-builder-ui-skin--dark .fl-builder--template-thumbnail{border-color:#393f44}.fl-builder-ui-skin--dark .fl-builder--menu a.fl-template-collection{color:#a8b3bf}.fl-builder-ui-skin--dark .fl-lightbox .fl-lightbox-header h1{color:#fff!important}.fl-builder-ui-skin--dark .fl-form-table th label{color:#a8b3bf!important}.fl-builder-ui-skin--dark .fl-builder-settings-tabs{background-color:#2c333a!important}.fl-builder-ui-skin--dark .fl-builder-settings-fields h3.fl-builder-settings-title{background:#24282e}.fl-builder-ui-skin--dark h3.fl-builder-settings-title .fl-builder-settings-title-text-wrap{color:#a8b3bf;background-color:#1b2025}.fl-builder-ui-skin--dark .fl-lightbox :not(i){color:#a7b1bb!important}.fl-builder-ui-skin--dark .fl-builder-button{color:#c6cdd6!important;fill:#c6cdd6!important}.fl-builder-ui-skin--dark .fl-builder-content-panel--button:hover,.fl-builder-ui-skin--dark .fl-builder-content-panel-button{fill:#00A0D2!important}.fl-builder-ui-skin--dark .fl-lightbox .fl-builder-button.fl-builder-button-primary{color:#fff!important}.fl-builder-ui-skin--dark .fl-color-picker-color.fl-color-picker-empty{background:#1a1b22}.fl-color-picker-color.fl-color-picker-empty .fl-color-picker-icon{fill:#6f7881}.fl-builder-ui-skin--dark .fl-color-picker-clear{background-color:#121a23}.fl-builder-ui-skin--dark .fl-color-picker-clear:hover{background-color:#373f46}.fl-builder-ui-skin--dark span.fl-builder-block-no-node-templates:hover{background:#1d2025}.fl-builder-ui-skin--dark .fl-builder-settings-tab-description{background:#1d2227}.fl-builder-ui-skin--dark .fl-builder-panel-search button svg .filled-shape{fill:#b5becb}.fl-builder-ui-skin--dark .fl-builder-custom-field,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=email],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=file],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=number],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=password],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=search],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=tel],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=text],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=url],.fl-builder-ui-skin--dark .fl-builder-settings-fields select,.fl-builder-ui-skin--dark .fl-builder-settings-fields textarea{background-color:#181b20!important}.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=email]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=file]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=number]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=password]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=search]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=tel]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=text]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=url]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields select:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields textarea:focus{border-color:#00a0d2!important;color:#fff!important}.fl-builder-ui-skin--dark .fl-builder-settings-fields select{background-image:url(../img/svg/select-arrow-down-alt2-light.svg)!important}.fl-builder-ui-skin--dark .fl-builder-custom-field select,.fl-builder-ui-skin--dark .fl-photo-field select{border-color:#7d8690!important}.fl-builder-ui-skin--dark .fl-field i.fl-field-responsive-toggle{color:#6b747d}.fl-builder-ui-skin--dark .fl-builder--main-menu-panel-view-title,.fl-builder-ui-skin--dark .fl-field i.fl-field-responsive-toggle:hover{color:#a8b3bf}.fl-builder-ui-skin--dark .fl-builder--saving-indicator{color:#858f99}.fl-builder-ui-skin--dark .fl-icons-list i:hover{background-color:#16191d;color:#fff}.fl-builder-ui-skin--dark .fl-color-picker-clear .fl-color-picker-icon-remove:after,.fl-builder-ui-skin--dark .fl-color-picker-clear .fl-color-picker-icon-remove:before{background:#6f7881}.fl-builder-ui-skin--dark .fl-builder--user-templates-section-content{border-color:#1d1d1d}.fl-builder-ui-skin--dark .fl-theme-builder-preview-select.fl-builder-button{background:0 0;border-right-color:#101215!important}.fl-builder-ui-skin--dark .fl-theme-builder-preview-select.fl-builder-button:hover{background:#181b1f}.fl-builder-ui-skin--dark .fl-theme-builder-preview-select .fl-theme-builder-preview-select-title span{color:#c6cdd6}.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu{background:#131a22;border-color:#353c43 #131a22 #131a22}.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu:before{border-bottom-color:#353c43}.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu>a:active,.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu>a:focus,.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu>a:hover{background:#383f46}.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu>a.fl-active,.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu>a:hover.fl-active{color:#fff!important;background:#383f46}.fl-builder-ui-skin--dark ul.as-selections{background-color:#121a23}.fl-builder-ui-skin--dark .fl-custom-query .fl-builder-settings-section{border-top:2px solid #1b2026!important}.fl-builder-ui-skin--dark div.fl-field-unit-select{background-color:#181b20!important}.fl-builder-ui-skin--dark .fl-dimension-field-units>*{border-right:1px solid #383f46}.fl-builder-ui-skin--dark .fl-field-popup-slider,.fl-builder-ui-skin--dark .fl-field-popup-slider-input .ui-slider-handle{background:#383f46}.fl-builder-ui-skin--dark .fl-field-popup-slider-arrow:after{border-bottom-color:#383f46}.fl-builder-ui-skin--dark .fl-field-popup-slider-input{background-color:#121a23}.fl-builder-ui-skin--dark .fl-unit-field-input{border-right:1px solid #383f46!important}.fl-builder-ui-skin--dark .fl-button-group-field-option[data-selected="1"]{background-color:#383f46;color:#fff}.fl-builder-ui-skin--dark .fl-button-group-field-option[data-selected="1"] i{color:#fff!important}.fl-builder-ui-skin--dark .fl-button-group-field-options{background:#181b20}.fl-builder-ui-skin--dark .fl-compound-field-section-toggle{background-color:#181b20}.fl-builder-ui-skin--dark .fl-compound-field-section-toggle:hover{background-color:#383f46}.fl-builder-ui-skin--dark .fl-compound-field-section-visible .fl-compound-field-section-toggle{border-top-color:#121a23!important;background-color:transparent}.fl-builder-ui-skin--dark .fl-field-connections-toggle i{color:#7c8590}.fl-builder-ui-skin--dark .fl-lightbox .fl-field-connection-content{background-color:#191b20!important}.fl-builder-ui-skin--dark .fl-nanoscroller>.fl-nanoscroller-pane>.fl-nanoscroller-slider{background-color:#181b20}.fl-builder-ui-skin--dark .fl-nanoscroller>.fl-nanoscroller-pane:hover>.fl-nanoscroller-slider{background-color:#5a646f}.fl-builder-ui-skin--dark .fl-nanoscroller>.fl-nanoscroller-pane.active>.fl-nanoscroller-slider{background-color:#00A0D2}.fl-builder-ui-skin--dark .fl-lightbox div.mce-panel{background:#383f46}.fl-builder-ui-skin--dark .fl-lightbox .mce-toolbar .mce-ico{color:#a7b1bb}.fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button,.fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button-secondary{background:#383f46;border:none;box-shadow:none}.fl-builder-ui-skin--dark .fl-lightbox .fl-builder-settings .wp-switch-editor{background:#23282d}.fl-builder-ui-skin--dark .fl-lightbox .html-active .switch-html,.fl-builder-ui-skin--dark .fl-lightbox .quicktags-toolbar,.fl-builder-ui-skin--dark .fl-lightbox .tmce-active .switch-tmce{background:#383f46}.fl-builder-ui-skin--dark .fl-lightbox textarea.wp-editor-area{background:0 0!important}.fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button-secondary:focus,.fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button-secondary:hover,.fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button.focus,.fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button.hover,.fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button:focus,.fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button:hover{background:#191b20}
css/fl-color-picker.css CHANGED
@@ -5,7 +5,7 @@
5
  width: 300px;
6
  }
7
  .fl-color-picker-ui.fl-color-alpha-enabled {
8
- width: 238px;
9
  }
10
  .fl-color-picker-ui .iris-picker {
11
  float: left;
@@ -171,8 +171,8 @@
171
  content: " ";
172
  }
173
  .fl-color-picker-ui .iris-picker .iris-square-value {
174
- width: 8px;
175
- height: 8px;
176
  position: absolute;
177
  }
178
  .iris-ie-lt9 .iris-square-value, .iris-mozilla .iris-square-value {
@@ -191,6 +191,7 @@
191
  .fl-color-picker {
192
  box-shadow: 0 2px 4px 0 rgba(0,0,0,0.12);
193
  background:white;
 
194
  border-radius: 4px;
195
  width: 120px;
196
  height:36px;
@@ -205,7 +206,6 @@
205
  background-color: transparent;
206
  cursor: pointer;
207
  border: 2px solid transparent;
208
- border-right: 2px solid rgba(0,0,0,0.1);
209
  padding:0;
210
  justify-content: center;
211
  display: flex;
@@ -250,10 +250,17 @@
250
  border: 2px solid transparent;
251
  border-top-right-radius: 4px;
252
  border-bottom-right-radius: 4px;
253
- background-color: #ffffff;
 
 
 
254
  border-color:transparent;
255
  cursor: pointer;
256
  }
 
 
 
 
257
  .fl-color-picker-color.fl-color-picker-empty + .fl-color-picker-clear {
258
  display: none;
259
  }
@@ -261,7 +268,7 @@
261
  .fl-color-picker-ui {
262
  display: inline-block;
263
  font-family: Helvetica, Verdana, sans-serif;
264
- z-index: 999999;
265
  position: fixed;
266
  overflow: hidden;
267
  padding-bottom: 45px;
@@ -283,6 +290,7 @@
283
  .fl-color-picker-ui.fl-color-picker-active{
284
  visibility: visible;
285
  opacity: 1;
 
286
  }
287
  .fl-color-picker-ui .fl-color-picker-input,
288
  .fl-color-picker-ui .fl-color-picker-input:focus{
@@ -396,6 +404,7 @@
396
  color: #656c6e;
397
  visibility: visible;
398
  opacity: 1;
 
399
  }
400
 
401
  .fl-color-picker-presets-list{
@@ -587,7 +596,7 @@
587
  ---------------------------------------------------- */
588
  .fl-alpha-wrap {
589
  position: absolute;
590
- width: 35px;
591
  height: 215px;
592
  padding: 0 5px;
593
  right: 4px;
5
  width: 300px;
6
  }
7
  .fl-color-picker-ui.fl-color-alpha-enabled {
8
+ width: 334px;
9
  }
10
  .fl-color-picker-ui .iris-picker {
11
  float: left;
171
  content: " ";
172
  }
173
  .fl-color-picker-ui .iris-picker .iris-square-value {
174
+ width: 0px;
175
+ height: 0px;
176
  position: absolute;
177
  }
178
  .iris-ie-lt9 .iris-square-value, .iris-mozilla .iris-square-value {
191
  .fl-color-picker {
192
  box-shadow: 0 2px 4px 0 rgba(0,0,0,0.12);
193
  background:white;
194
+ background-image: url('../img/transp_bg.png');
195
  border-radius: 4px;
196
  width: 120px;
197
  height:36px;
206
  background-color: transparent;
207
  cursor: pointer;
208
  border: 2px solid transparent;
 
209
  padding:0;
210
  justify-content: center;
211
  display: flex;
250
  border: 2px solid transparent;
251
  border-top-right-radius: 4px;
252
  border-bottom-right-radius: 4px;
253
+ border-top-left-radius: 0px;
254
+ border-bottom-left-radius: 0px;
255
+ fill: #A2AABE;
256
+ background-color: #E7EBEF;
257
  border-color:transparent;
258
  cursor: pointer;
259
  }
260
+ .fl-color-picker-clear:hover {
261
+ fill: #6B6E75;
262
+ background-color: #E7EBEF;
263
+ }
264
  .fl-color-picker-color.fl-color-picker-empty + .fl-color-picker-clear {
265
  display: none;
266
  }
268
  .fl-color-picker-ui {
269
  display: inline-block;
270
  font-family: Helvetica, Verdana, sans-serif;
271
+ z-index: 1;
272
  position: fixed;
273
  overflow: hidden;
274
  padding-bottom: 45px;
290
  .fl-color-picker-ui.fl-color-picker-active{
291
  visibility: visible;
292
  opacity: 1;
293
+ z-index: 999999;
294
  }
295
  .fl-color-picker-ui .fl-color-picker-input,
296
  .fl-color-picker-ui .fl-color-picker-input:focus{
404
  color: #656c6e;
405
  visibility: visible;
406
  opacity: 1;
407
+ z-index: 999999;
408
  }
409
 
410
  .fl-color-picker-presets-list{
596
  ---------------------------------------------------- */
597
  .fl-alpha-wrap {
598
  position: absolute;
599
+ width: 32px;
600
  height: 215px;
601
  padding: 0 5px;
602
  right: 4px;
css/fl-lightbox.css CHANGED
@@ -11,10 +11,10 @@
11
  display: none;
12
  left: 0;
13
  overflow: auto;
14
- padding: 4px;
15
  position: fixed;
16
  right: 0;
17
- top: 46px;
18
  z-index: 100010;
19
  -webkit-backface-visibility: hidden;
20
  -webkit-transform: translateZ(0);
@@ -55,8 +55,8 @@
55
  .fl-lightbox *:not(i) {
56
  color: #333;
57
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
58
- font-size: 13px;
59
- line-height: 16px;
60
  text-decoration: none;
61
  text-transform: none;
62
  }
@@ -67,10 +67,23 @@
67
  -moz-box-sizing: content-box;
68
  box-sizing: content-box;
69
  }
70
- .fl-lightbox .fl-nanoscroller-pane {
71
- bottom: 4px;
72
- right: 4px;
73
- width: 8px;
 
 
 
 
 
 
 
 
 
 
 
 
 
74
  }
75
  .fl-lightbox .fa {
76
  font-family: FontAwesome !important;
@@ -144,19 +157,17 @@
144
 
145
  /* Header */
146
  .fl-lightbox-header-wrap {
147
- background:white;
148
  border-top-left-radius: 4px;
149
  border-top-right-radius: 4px;
150
- border-bottom: 2px solid #eaeaea;
151
  }
152
  .fl-lightbox-header {
153
  position: relative;
154
  }
155
  .fl-lightbox-header h1 {
156
  color: #333 !important;
157
- font-size: 20px !important;
158
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
159
- font-weight: 600 !important;
160
  margin: 0 !important;
161
  padding: 14px 28px 15px !important;
162
  padding-right: 34px !important;
@@ -164,13 +175,15 @@
164
  display: flex;
165
  flex-direction: row;
166
  align-items: center;
167
- line-height: 1.1;
168
  }
169
  .fl-lightbox.ui-draggable .fl-lightbox-header {
170
  cursor: move;
171
  }
172
  .fl-lightbox-header h1 .fl-builder-badge {
173
  margin-left: 10px;
 
 
174
  }
175
 
176
  /* Content */
11
  display: none;
12
  left: 0;
13
  overflow: auto;
14
+ padding: 0;
15
  position: fixed;
16
  right: 0;
17
+ top: 43px;
18
  z-index: 100010;
19
  -webkit-backface-visibility: hidden;
20
  -webkit-transform: translateZ(0);
55
  .fl-lightbox *:not(i) {
56
  color: #333;
57
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
58
+ font-size: 12px;
59
+ line-height: 14px;
60
  text-decoration: none;
61
  text-transform: none;
62
  }
67
  -moz-box-sizing: content-box;
68
  box-sizing: content-box;
69
  }
70
+ .fl-lightbox .fl-nanoscroller-pane,
71
+ #fl-ui-root .fl-nanoscroller-pane,
72
+ .fl-builder--content-library-panel .fl-nanoscroller-pane {
73
+ bottom: 2px;
74
+ right: 2px;
75
+ width: 6px;
76
+ }
77
+ .fl-nanoscroller > .fl-nanoscroller-pane > .fl-nanoscroller-slider {
78
+ background-color: #bac0ca;
79
+ transition-property: height, background-color;
80
+ transition-duration: .25s;
81
+ }
82
+ .fl-nanoscroller > .fl-nanoscroller-pane > .fl-nanoscroller-slider:hover {
83
+ background-color: #c8cdd4;
84
+ }
85
+ .fl-nanoscroller > .fl-nanoscroller-pane.active > .fl-nanoscroller-slider {
86
+ background-color: #029fd2;
87
  }
88
  .fl-lightbox .fa {
89
  font-family: FontAwesome !important;
157
 
158
  /* Header */
159
  .fl-lightbox-header-wrap {
 
160
  border-top-left-radius: 4px;
161
  border-top-right-radius: 4px;
 
162
  }
163
  .fl-lightbox-header {
164
  position: relative;
165
  }
166
  .fl-lightbox-header h1 {
167
  color: #333 !important;
168
+ font-size: 16px !important;
169
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
170
+ font-weight: 400 !important;
171
  margin: 0 !important;
172
  padding: 14px 28px 15px !important;
173
  padding-right: 34px !important;
175
  display: flex;
176
  flex-direction: row;
177
  align-items: center;
178
+ line-height: 1;
179
  }
180
  .fl-lightbox.ui-draggable .fl-lightbox-header {
181
  cursor: move;
182
  }
183
  .fl-lightbox-header h1 .fl-builder-badge {
184
  margin-left: 10px;
185
+ color:white;
186
+ background-color: #F7A408;
187
  }
188
 
189
  /* Content */
css/jquery.tiptip.css CHANGED
@@ -2,6 +2,7 @@
2
 
3
  #tiptip_holder {
4
  display: none;
 
5
  position: absolute;
6
  top: 0;
7
  left: 0;
2
 
3
  #tiptip_holder {
4
  display: none;
5
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
6
  position: absolute;
7
  top: 0;
8
  left: 0;
fl-builder.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Beaver Builder Plugin (Lite Version)
4
  * Plugin URI: https://www.wpbeaverbuilder.com/?utm_medium=bb&utm_source=plugins-admin-page&utm_campaign=plugins-admin-uri
5
  * Description: A drag and drop frontend WordPress page builder plugin that works with almost any theme!
6
- * Version: 2.1.7.2
7
  * Author: The Beaver Builder Team
8
  * Author URI: https://www.wpbeaverbuilder.com/?utm_medium=bb&utm_source=plugins-admin-page&utm_campaign=plugins-admin-author
9
  * Copyright: (c) 2014 Beaver Builder
3
  * Plugin Name: Beaver Builder Plugin (Lite Version)
4
  * Plugin URI: https://www.wpbeaverbuilder.com/?utm_medium=bb&utm_source=plugins-admin-page&utm_campaign=plugins-admin-uri
5
  * Description: A drag and drop frontend WordPress page builder plugin that works with almost any theme!
6
+ * Version: 2.2.0.6
7
  * Author: The Beaver Builder Team
8
  * Author URI: https://www.wpbeaverbuilder.com/?utm_medium=bb&utm_source=plugins-admin-page&utm_campaign=plugins-admin-author
9
  * Copyright: (c) 2014 Beaver Builder
fonts/fontawesome/css/all.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Font Awesome Free 5.6.1 by @fontawesome - https://fontawesome.com
3
  * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4
  */
5
- .fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hashtag:before{content:"\f292"}.fa-hat-wizard:before{content:"\f6e8"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-icicles:before{content:"\f7ad"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-nintendo-switch:before{content:"\f418"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900}
1
  /*!
2
+ * Font Awesome Free 5.6.3 by @fontawesome - https://fontawesome.com
3
  * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4
  */
5
+ .fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hashtag:before{content:"\f292"}.fa-hat-wizard:before{content:"\f6e8"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-icicles:before{content:"\f7ad"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-nintendo-switch:before{content:"\f418"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900}
fonts/fontawesome/webfonts/fa-brands-400.eot CHANGED
Binary file
fonts/fontawesome/webfonts/fa-brands-400.svg CHANGED
@@ -1,6 +1,6 @@
1
  <?xml version="1.0" standalone="no"?>
2
  <!--
3
- Font Awesome Free 5.6.1 by @fontawesome - https://fontawesome.com
4
  License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
5
  -->
6
  <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
@@ -396,7 +396,7 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL
396
  horiz-adv-x="640" d=" M586 163.5L639.3 223.4H576.9L555.1999999999999 198.6L532.6999999999999 223.4H414V239.4H470.1V287.5H318.9V212H318.4C308.8 223 296.9 226.8 283 226.8C254.6 226.8 233.2 207.4 225.7 181.9C207.7 241.3000000000001 128.3 239.5000000000001 103.8 195.9V220.1H49V246.3H109V287.4H0V103H49V180.5H97.9C96.4 174.8 95.6 168.7 95.6 162.3C95.6 89.2000000000001 198.2 70.9 225.8 138.6H183.8C169.1 117.7000000000001 138 129.7000000000001 138 153.2000000000001H223.5C227.2 122.7000000000001 250.9 96.3000000000001 283.6 96.3000000000001C297.7000000000001 96.3000000000001 310.6 103.2000000000001 318.5 114.9000000000001H319V103H531.2L553.3000000000001 128L575.6 103H640L586 163.5zM139.3 180.1C145.4 206.4 181 205.7 185.8 180.1H139.3zM292.7000000000001 131.2000000000001C258.1 131.2000000000001 258.7000000000001 194.0000000000001 292.7000000000001 194.0000000000001C325.3000000000001 194.0000000000001 327.2000000000001 131.2000000000001 292.7000000000001 131.2000000000001zM460.5000000000001 112.1H366.1V278.6H461.1V248.4H405V214.5H460.5V186.4H404.4V141.7H460.5V112.1zM414.6000000000001 151.9V176.3H470.7000000000001V220.3L521.4000000000001 163.3L470.7000000000001 106.3V151.9H414.6000000000001zM553.2 141.6L527.1 112.1H489L534.6 163.3L489 214.5H528.7L555.3000000000001 185.2L580.9000000000001 214.5H619.4000000000001L574.0000000000001 163.5L620.0000000000001 112.1H579.5000000000001L553.2000000000002 141.6z" />
397
  <glyph glyph-name="fedora"
398
  unicode="&#xF798;"
399
- horiz-adv-x="447.3" d=" M223.6 415.6C100.2 415.6 0.1 315.6 0 192.1V19C0.1 -9 22.8 -31.7 50.8 -31.7H223.7C347.2 -31.7 447.2 68.4 447.2 191.9C447.3 315.5 347.1 415.6 223.6 415.6zM309.3 311.7C302.2 311.7 299.7 313.1 289.3 313.1C258.7 313.1 234 288.3 233.9 257.8V209.7C233.9 205.4 237.4 201.9 241.7 201.9H278.1C310.5 201.9 310.7000000000001 153 277.8 153H233.8V97.4C233.8 39.4 186.8 -7.6 128.8 -7.6C120 -7.6 113.8 -6.6 105.6 -4.5C74.1 3.8 78.9 43.3 108.8 43.3C115.9 43.3 118.4 41.9 128.8 41.9C159.4 41.9 184.1 66.7000000000001 184.2 97.2000000000001V145.3000000000001C184.2 149.6000000000001 180.7 153.1000000000001 176.4 153.1000000000001H140C107.6 153.1000000000001 107.4 202.0000000000001 140.3 202.0000000000001H184.3V257.6000000000001C184.3 315.6000000000001 231.3 362.6000000000001 289.3 362.6000000000001C298.1 362.6000000000001 304.3 361.6000000000001 312.5 359.5000000000001C344 351.2000000000001 339.2 311.7000000000001 309.3 311.7000000000001z" />
400
  <glyph glyph-name="figma"
401
  unicode="&#xF799;"
402
  horiz-adv-x="341.3" d=" M341.3 192C341.3 144.9 303.1 106.7 256 106.7S170.7 144.9 170.7 192S208.9 277.3 256 277.3S341.3 239.1 341.3 192zM256 277.3C303.1 277.3 341.3 315.5 341.3 362.6S303.1 448 256 448H85.3C38.2 448 0 409.8 0 362.7S38.2 277.4 85.3 277.4C38.2 277.3 0 239.1 0 192S38.2 106.7 85.3 106.7C38.2 106.7 0 68.5 0 21.3S38.2 -64 85.3 -64S170.6 -25.8 170.6 21.3V277.3H256z" />
1
  <?xml version="1.0" standalone="no"?>
2
  <!--
3
+ Font Awesome Free 5.6.3 by @fontawesome - https://fontawesome.com
4
  License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
5
  -->
6
  <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
396
  horiz-adv-x="640" d=" M586 163.5L639.3 223.4H576.9L555.1999999999999 198.6L532.6999999999999 223.4H414V239.4H470.1V287.5H318.9V212H318.4C308.8 223 296.9 226.8 283 226.8C254.6 226.8 233.2 207.4 225.7 181.9C207.7 241.3000000000001 128.3 239.5000000000001 103.8 195.9V220.1H49V246.3H109V287.4H0V103H49V180.5H97.9C96.4 174.8 95.6 168.7 95.6 162.3C95.6 89.2000000000001 198.2 70.9 225.8 138.6H183.8C169.1 117.7000000000001 138 129.7000000000001 138 153.2000000000001H223.5C227.2 122.7000000000001 250.9 96.3000000000001 283.6 96.3000000000001C297.7000000000001 96.3000000000001 310.6 103.2000000000001 318.5 114.9000000000001H319V103H531.2L553.3000000000001 128L575.6 103H640L586 163.5zM139.3 180.1C145.4 206.4 181 205.7 185.8 180.1H139.3zM292.7000000000001 131.2000000000001C258.1 131.2000000000001 258.7000000000001 194.0000000000001 292.7000000000001 194.0000000000001C325.3000000000001 194.0000000000001 327.2000000000001 131.2000000000001 292.7000000000001 131.2000000000001zM460.5000000000001 112.1H366.1V278.6H461.1V248.4H405V214.5H460.5V186.4H404.4V141.7H460.5V112.1zM414.6000000000001 151.9V176.3H470.7000000000001V220.3L521.4000000000001 163.3L470.7000000000001 106.3V151.9H414.6000000000001zM553.2 141.6L527.1 112.1H489L534.6 163.3L489 214.5H528.7L555.3000000000001 185.2L580.9000000000001 214.5H619.4000000000001L574.0000000000001 163.5L620.0000000000001 112.1H579.5000000000001L553.2000000000002 141.6z" />
397
  <glyph glyph-name="fedora"
398
  unicode="&#xF798;"
399
+ horiz-adv-x="448.44" d=" M53.62 -31.56C23.83 -31.48 -0.08 -7.45 0 22.34L0.44 192.58C0.76 316.29 101.31 416.32 225.02 416C348.73 415.68 448.76 315.13 448.44 191.42S347.57 -32.32 223.86 -32L53.62 -31.56M289.84 362.07C231.6 362.2200000000001 184.44 315.3 184.29 257.06L184.15 201.06L141.59 201.17C108.96 201.25 108.84 151.97 141.46 151.89L175.06 151.8C179.54 151.79 184.01 147.3 184 142.82L183.88 95.78C183.8 64.87 158.65 39.85 127.74 39.93C118.37 39.9499999999999 118.34 41.5199999999999 112.06 41.54C98.84 41.5699999999999 87.62 30.4 87.58 16.96C87.54 1.39 101.77 -7.28 107.45 -7.28C168.77 -20.1300000000001 232.98 26.36 233.16 95.66L233.3 151.66L275.86 151.55C308.51 151.47 308.56 200.75 275.99 200.83L242.39 200.92C237.44 200.93 233.44 204.95 233.45 209.9L233.57 256.94C233.67 297.4599999999999 272.2 317.81 299.57 311.87C314.93 307.99 329.83 320.3 329.87 335.76C329.8999999999999 347.86 321.19 357.9599999999999 310 359.78C303.2799999999999 361.36 296.7799999999999 362.05 289.8399999999999 362.07M108.8399999999999 184.68L97 196.59C92.29 195.26 87.58 193.48 83.32 191.25L110.35 164.08C108.79 168.12 107.91 172.15 107.92 176.63M101.76 46.72H100.19H101.76M80.85 16.98C80.86 22.13 82.22 27.06 84.47 31.31L22.58 93.52C22.56 85.9 23.66 78.73 25.44 71.56L80.85 15.86V16.98M86.4 -0.96C84.39 1.96 83.06 4.87 82.17 8.23L27.88 62.8C37.44 34.12 58.88 10.99 86.4 -0.96M308.6 168.04L320.44 156.1400000000001C325.15 157.47 329.86 159.2500000000001 334.12 161.48L307.0900000000001 188.65C308.6500000000001 184.61 309.5300000000001 180.5800000000001 309.5200000000001 176.1M336.8100000000001 335.74C336.8000000000001 330.5900000000001 335.2200000000001 326.11 332.9600000000001 321.4100000000001L394.85 258.75C394.6500000000001 266.81 393.7700000000001 273.98 392 281.16L336.82 337.3L336.81 335.74M331.0300000000001 353.68C333.04 350.76 334.37 347.85 335.2600000000001 344.49L389.5500000000001 289.92C380.0000000000001 318.61 358.5600000000001 341.73 331.0300000000001 353.68M315.51 154.8L307.02 163.33C305.22 159.08 302.74 155.28 299.37 151.93C304.98 152.37 310.36 153.47 315.51 154.8M363.97 182.23L329.12 217.26A64.478 64.478 0 0 0 318.57 208.78L353.87 173.3C357.4599999999999 176.2 360.82 179.1 363.97 182.23M350.27 170.62L314.07 206.55C310.03 204.32 305.32 202.99 300.39 201.88L338.37 163.48C342.42 165.71 346.46 168.16 350.27 170.62M375.65 196.09L339.9 232.02C337.65 227.77 335.18 223.97 332.25 220.62L367.1 185.59C370.0300000000001 188.9400000000001 372.9500000000001 192.29 375.6500000000001 196.09M384.8800000000001 211.97L345.3300000000001 251.7200000000001C344.8700000000001 246.35 343.73 241.2 341.7100000000001 236.5000000000001L378.1300000000001 199.8900000000001C380.6000000000001 203.6900000000001 382.8500000000001 207.7200000000001 384.8800000000001 211.9700000000001M394.8400000000001 252.9400000000001L330.5 317.6200000000001C327.8 313.8200000000001 324.43 310.6900000000001 320.62 308.4600000000001L392.56 236.3700000000001C393.9100000000001 241.5100000000001 394.6 247.5600000000001 394.84 252.9400000000001M391.64 230.7700000000001L338.47 284.2200000000001C342.71 276.37 345.37 267.4000000000001 345.57 257.99L386.9 216.4400000000001C388.71 221.1400000000001 390.29 225.8400000000001 391.64 230.7700000000001M63.57 179.42C59.98 176.5200000000001 56.39 173.61 53.47 170.04L88.32 135.4500000000001C91.46 138.5800000000001 95.06 141.48 98.87 143.9300000000001L63.57 179.4200000000001M78.83 189.2400000000001C75.02 187.0100000000001 70.98 184.5600000000001 67.61 182.1000000000001L102.91 146.1700000000001C107.4 148.4000000000001 112.33 149.9500000000001 117.03 150.8400000000001L78.83 189.2400000000001M118.06 200.7900000000001C112.46 200.3600000000001 107.08 199.2500000000001 101.92 197.9200000000001L110.41 189.3900000000001C112.44 193.6300000000001 114.92 197.4400000000001 118.06 200.7900000000001M24.66 116.8000000000001C23.53 111.2000000000001 22.62 105.6100000000001 22.6 99.7800000000001L86.95 35.5500000000001C89.65 38.9000000000002 93.01 42.0300000000001 96.83 44.2600000000001L24.66 116.8M39.31 152.8300000000001C36.84 149.03 34.59 145.0000000000001 32.56 140.7500000000001L72.11 101C72.57 106.37 73.71 111.52 75.73 116.22L39.31 152.8300000000001M30.54 136.5000000000001C28.74 131.5800000000001 27.16 126.8800000000001 25.8 121.9500000000001L78.53 68.5000000000001C74.74 76.3500000000001 72.08 85.3200000000001 71.88 94.7300000000001L30.54 136.5M50.33 167.14C47.41 163.79 44.49 160.44 41.79 156.63L77.54 120.7C79.79 125.17 82.26 128.75 85.19 132.1L50.33 167.14z" />
400
  <glyph glyph-name="figma"
401
  unicode="&#xF799;"
402
  horiz-adv-x="341.3" d=" M341.3 192C341.3 144.9 303.1 106.7 256 106.7S170.7 144.9 170.7 192S208.9 277.3 256 277.3S341.3 239.1 341.3 192zM256 277.3C303.1 277.3 341.3 315.5 341.3 362.6S303.1 448 256 448H85.3C38.2 448 0 409.8 0 362.7S38.2 277.4 85.3 277.4C38.2 277.3 0 239.1 0 192S38.2 106.7 85.3 106.7C38.2 106.7 0 68.5 0 21.3S38.2 -64 85.3 -64S170.6 -25.8 170.6 21.3V277.3H256z" />
fonts/fontawesome/webfonts/fa-brands-400.ttf CHANGED
Binary file
fonts/fontawesome/webfonts/fa-brands-400.woff CHANGED
Binary file
fonts/fontawesome/webfonts/fa-brands-400.woff2 CHANGED
Binary file
fonts/fontawesome/webfonts/fa-regular-400.eot CHANGED
Binary file
fonts/fontawesome/webfonts/fa-regular-400.svg CHANGED
@@ -1,6 +1,6 @@
1
  <?xml version="1.0" standalone="no"?>
2
  <!--
3
- Font Awesome Free 5.6.1 by @fontawesome - https://fontawesome.com
4
  License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
5
  -->
6
  <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
1
  <?xml version="1.0" standalone="no"?>
2
  <!--
3
+ Font Awesome Free 5.6.3 by @fontawesome - https://fontawesome.com
4
  License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
5
  -->
6
  <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
fonts/fontawesome/webfonts/fa-regular-400.ttf CHANGED
Binary file
fonts/fontawesome/webfonts/fa-regular-400.woff CHANGED
Binary file
fonts/fontawesome/webfonts/fa-regular-400.woff2 CHANGED
Binary file
fonts/fontawesome/webfonts/fa-solid-900.eot CHANGED
Binary file
fonts/fontawesome/webfonts/fa-solid-900.svg CHANGED
@@ -1,6 +1,6 @@
1
  <?xml version="1.0" standalone="no"?>
2
  <!--
3
- Font Awesome Free 5.6.1 by @fontawesome - https://fontawesome.com
4
  License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
5
  -->
6
  <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
@@ -985,12 +985,15 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL
985
  <glyph glyph-name="fingerprint"
986
  unicode="&#xF577;"
987
  horiz-adv-x="512" d=" M256.12 202.04C242.87 202.04 232.12 191.3 232.12 178.04C233.26 105.79 223.98 36.14 204.42 -33.51C201.69 -43.2300000000001 206.57 -64 227.54 -64C238.02 -64 247.6500000000001 -57.08 250.63 -46.48C264.1600000000001 1.43 281.67 78.93 280.11 178.04C280.12 191.29 269.38 202.04 256.12 202.04zM255.26 283.77C194 283.8400000000001 151.25 236.7 152.1 182.68C152.85 134.74 148.35 86.77 138.73 40.13C136.04 27.15 144.4 14.44 157.37 11.77C170.42 9.1 183.04 17.43 185.73 30.41C196.07 80.5 200.9 131.99 200.1 183.43C199.69 209.38 220.0200000000001 235.92 254.55 235.77C285.86 235.3 311.7 210.43 312.17 180.3C312.94 132.25 309.36 83.97 301.56 36.7499999999999C299.39 23.6899999999999 308.25 11.3299999999999 321.32 9.17C341.29 5.84 348.13 24.27 348.9 28.9399999999999C357.18 78.9699999999999 360.96 130.1499999999999 360.17 181.05C359.29 236.85 312.23 282.93 255.26 283.77zM144.57 303.55C134.27 311.89 119.2 310.35 110.81 300.07C85.19 268.57 71.42 228.79 72.06 188.07C72.65 150.49 69.59 112.8 62.95 76.02C60.61 62.97 69.26 50.49 82.31 48.13C102.42 44.63 109.38 62.94 110.2 67.49C117.39 107.33 120.7 148.15 120.06 188.82C119.59 218.7 129.26 246.7 148.06 269.79C156.41 280.07 154.85 295.18 144.57 303.55zM254.04 365.88C238.63 366.29 223.17 364.44 208.26 360.91C195.37 357.85 187.39 344.93 190.43 332.02C193.49 319.13 206.43 311.19 219.32 314.19C230.37 316.8 241.79 317.9600000000001 253.32 317.88C328.75 316.75 391.05 256.38 392.2 183.3C392.79 145.42 390.92 107.1899999999999 386.62 69.67C385.12 56.4999999999999 394.57 44.59 407.73 43.09C424.4500000000001 41.14 433.24 54.97 434.31 64.2A929.06 929.06 0 0 1 440.2 184.05C438.64 282.8 355.13 364.38 254.04 365.88zM506.11 244.43C503.25 257.35 490.6 265.63 477.5 262.7C464.56 259.84 456.38 247.04 459.24 234.09C463.95 212.68 464.15 196.68 463.94 172.49C463.83 159.22 474.49 148.4 487.74 148.29H487.94C501.11 148.29 511.83 158.9 511.94 172.09C512.12 194.27 512.34 216.2 506.11 244.43zM465.99 335.15C417.29 404.54 337.6 446.71 252.81 447.98C183.02 448.82 118.47 423.09 70.46 375.06C24.09 328.63 -0.9 266.9600000000001 0.14 201.35L0.02 179.88C-0.37 166.63 10.05 155.57 23.3 155.19C23.53 155.17 23.78 155.17 24.02 155.17C36.94 155.17 47.61 165.47 47.99 178.47L48.15 202.11C47.32 254.61 67.31 303.9700000000001 104.43 341.11C143.19 379.9100000000001 195.77 400.7800000000001 252.11 399.9700000000001C321.56 398.94 386.8400000000001 364.4100000000001 426.73 307.5800000000001C434.3400000000001 296.7200000000001 449.29 294.13 460.15 301.7200000000001C470.99 309.3400000000001 473.61 324.31 465.99 335.15z" />
 
 
 
988
  <glyph glyph-name="fire-extinguisher"
989
  unicode="&#xF134;"
990
  horiz-adv-x="448" d=" M434.027 421.671L266.027 393.671C254.693 391.782 256 380.2 256 376H197.668C208.353 411.892 181.446 448 144 448C104.565 448 77.632 408.324 91.772 371.7970000000001C39.733 358.746 16.391 317.584 1.723 280.913C-3.2 268.606 2.786 254.639 15.093 249.716C27.41 244.79 41.372 250.791 46.289 263.086C75.058 335.01 106.964 328 168 328V300.924C126.457 290.062 96 251.689 96 206.795V-40C96 -53.255 106.745 -64 120 -64H264C277.255 -64 288 -53.255 288 -40V208C288 252.731 257.404 290.312 216 300.9700000000001V328H256C256 325.026 254.297 312.284 266.027 310.329L434.027 282.329C441.342 281.11 448 286.75 448 294.166V409.834C448 417.25 441.342 422.89 434.027 421.671zM144 376C135.178 376 128 383.178 128 392S135.178 408 144 408S160 400.822 160 392S152.822 376 144 376z" />
991
  <glyph glyph-name="fire"
992
  unicode="&#xF06D;"
993
- horiz-adv-x="384" d=" M277.3 371.2A520.71 520.71 0 0 1 229.1 318.7C205.8 351.6 176.8 384.9 144 416C59.8 336.2 0 232.3 0 169.6C0 58.3 86 -32 192 -32S384 58.3 384 169.6C384 216.2 339.4 312.3 277.3 371.2000000000001zM262.1 69.1C243.1 55.8 219.8 47.9999999999999 194.5 47.9999999999999C131.4 48 80 89.8 80 157.6C80 191.4 101.3 221.2 143.7 272C149.8 265 230.2 162.3 230.2 162.3L281.5 220.8C285.1 214.8 288.4 208.9 291.4 203.3C315.3 157.7 305.2 99.3 262.1 69.1z" />
994
  <glyph glyph-name="first-aid"
995
  unicode="&#xF479;"
996
  horiz-adv-x="576" d=" M0 368V16C0 -10.5 21.5 -32 48 -32H96V416H48C21.5 416 0 394.5 0 368zM128 -32H448V416H128V-32zM192 216C192 220.4 195.6 224 200 224H256V280C256 284.4 259.6 288 264 288H312C316.4 288 320 284.4 320 280V224H376C380.4 224 384 220.4 384 216V168C384 163.6 380.4 160 376 160H320V104C320 99.6 316.4 96 312 96H264C259.6 96 256 99.6 256 104V160H200C195.6 160 192 163.6 192 168V216zM528 416H480V-32H528C554.5 -32 576 -10.5 576 16V368C576 394.5 554.5 416 528 416z" />
1
  <?xml version="1.0" standalone="no"?>
2
  <!--
3
+ Font Awesome Free 5.6.3 by @fontawesome - https://fontawesome.com
4
  License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
5
  -->
6
  <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
985
  <glyph glyph-name="fingerprint"
986
  unicode="&#xF577;"
987
  horiz-adv-x="512" d=" M256.12 202.04C242.87 202.04 232.12 191.3 232.12 178.04C233.26 105.79 223.98 36.14 204.42 -33.51C201.69 -43.2300000000001 206.57 -64 227.54 -64C238.02 -64 247.6500000000001 -57.08 250.63 -46.48C264.1600000000001 1.43 281.67 78.93 280.11 178.04C280.12 191.29 269.38 202.04 256.12 202.04zM255.26 283.77C194 283.8400000000001 151.25 236.7 152.1 182.68C152.85 134.74 148.35 86.77 138.73 40.13C136.04 27.15 144.4 14.44 157.37 11.77C170.42 9.1 183.04 17.43 185.73 30.41C196.07 80.5 200.9 131.99 200.1 183.43C199.69 209.38 220.0200000000001 235.92 254.55 235.77C285.86 235.3 311.7 210.43 312.17 180.3C312.94 132.25 309.36 83.97 301.56 36.7499999999999C299.39 23.6899999999999 308.25 11.3299999999999 321.32 9.17C341.29 5.84 348.13 24.27 348.9 28.9399999999999C357.18 78.9699999999999 360.96 130.1499999999999 360.17 181.05C359.29 236.85 312.23 282.93 255.26 283.77zM144.57 303.55C134.27 311.89 119.2 310.35 110.81 300.07C85.19 268.57 71.42 228.79 72.06 188.07C72.65 150.49 69.59 112.8 62.95 76.02C60.61 62.97 69.26 50.49 82.31 48.13C102.42 44.63 109.38 62.94 110.2 67.49C117.39 107.33 120.7 148.15 120.06 188.82C119.59 218.7 129.26 246.7 148.06 269.79C156.41 280.07 154.85 295.18 144.57 303.55zM254.04 365.88C238.63 366.29 223.17 364.44 208.26 360.91C195.37 357.85 187.39 344.93 190.43 332.02C193.49 319.13 206.43 311.19 219.32 314.19C230.37 316.8 241.79 317.9600000000001 253.32 317.88C328.75 316.75 391.05 256.38 392.2 183.3C392.79 145.42 390.92 107.1899999999999 386.62 69.67C385.12 56.4999999999999 394.57 44.59 407.73 43.09C424.4500000000001 41.14 433.24 54.97 434.31 64.2A929.06 929.06 0 0 1 440.2 184.05C438.64 282.8 355.13 364.38 254.04 365.88zM506.11 244.43C503.25 257.35 490.6 265.63 477.5 262.7C464.56 259.84 456.38 247.04 459.24 234.09C463.95 212.68 464.15 196.68 463.94 172.49C463.83 159.22 474.49 148.4 487.74 148.29H487.94C501.11 148.29 511.83 158.9 511.94 172.09C512.12 194.27 512.34 216.2 506.11 244.43zM465.99 335.15C417.29 404.54 337.6 446.71 252.81 447.98C183.02 448.82 118.47 423.09 70.46 375.06C24.09 328.63 -0.9 266.9600000000001 0.14 201.35L0.02 179.88C-0.37 166.63 10.05 155.57 23.3 155.19C23.53 155.17 23.78 155.17 24.02 155.17C36.94 155.17 47.61 165.47 47.99 178.47L48.15 202.11C47.32 254.61 67.31 303.9700000000001 104.43 341.11C143.19 379.9100000000001 195.77 400.7800000000001 252.11 399.9700000000001C321.56 398.94 386.8400000000001 364.4100000000001 426.73 307.5800000000001C434.3400000000001 296.7200000000001 449.29 294.13 460.15 301.7200000000001C470.99 309.3400000000001 473.61 324.31 465.99 335.15z" />
988
+ <glyph glyph-name="fire-alt"
989
+ unicode="&#xF7E4;"
990
+ horiz-adv-x="448" d=" M323.56 396.8C302.76 377.5 283.98 357.21 267.3400000000001 336.83C240.08 374.38 206.28 412.4700000000001 168 448C69.74 356.83 0 238.04 0 166.4C0 39.15 100.29 -64 224 -64S448 39.15 448 166.4C448 219.67 396.02 329.54 323.56 396.8zM304.0900000000001 56.15C282.43 40.99 255.72 32 226.86 32C154.71 32 96 79.74 96 157.25C96 195.86 120.31 229.88 168.79 288C175.72 280.02 267.62 162.66 267.62 162.66L326.25 229.54C330.39 222.69 334.1600000000001 215.99 337.52 209.57C364.87 157.38 353.33 90.6 304.09 56.15z" />
991
  <glyph glyph-name="fire-extinguisher"
992
  unicode="&#xF134;"
993
  horiz-adv-x="448" d=" M434.027 421.671L266.027 393.671C254.693 391.782 256 380.2 256 376H197.668C208.353 411.892 181.446 448 144 448C104.565 448 77.632 408.324 91.772 371.7970000000001C39.733 358.746 16.391 317.584 1.723 280.913C-3.2 268.606 2.786 254.639 15.093 249.716C27.41 244.79 41.372 250.791 46.289 263.086C75.058 335.01 106.964 328 168 328V300.924C126.457 290.062 96 251.689 96 206.795V-40C96 -53.255 106.745 -64 120 -64H264C277.255 -64 288 -53.255 288 -40V208C288 252.731 257.404 290.312 216 300.9700000000001V328H256C256 325.026 254.297 312.284 266.027 310.329L434.027 282.329C441.342 281.11 448 286.75 448 294.166V409.834C448 417.25 441.342 422.89 434.027 421.671zM144 376C135.178 376 128 383.178 128 392S135.178 408 144 408S160 400.822 160 392S152.822 376 144 376z" />
994
  <glyph glyph-name="fire"
995
  unicode="&#xF06D;"
996
+ horiz-adv-x="384" d=" M216 424.14C216 447.94 185.35 456.91 171.85 437.18C48 256.15 224 248 224 160C224 124.37 194.89 95.54 159.15 96.01C123.98 96.46 96 125.78 96 160.95V246.46C96 268.16 69.53 278.69 54.57 262.96C27.8 234.84 0 186.67 0 128C0 22.13 86.13 -64 192 -64S384 22.13 384 128C384 298.29 216 321 216 424.14z" />
997
  <glyph glyph-name="first-aid"
998
  unicode="&#xF479;"
999
  horiz-adv-x="576" d=" M0 368V16C0 -10.5 21.5 -32 48 -32H96V416H48C21.5 416 0 394.5 0 368zM128 -32H448V416H128V-32zM192 216C192 220.4 195.6 224 200 224H256V280C256 284.4 259.6 288 264 288H312C316.4 288 320 284.4 320 280V224H376C380.4 224 384 220.4 384 216V168C384 163.6 380.4 160 376 160H320V104C320 99.6 316.4 96 312 96H264C259.6 96 256 99.6 256 104V160H200C195.6 160 192 163.6 192 168V216zM528 416H480V-32H528C554.5 -32 576 -10.5 576 16V368C576 394.5 554.5 416 528 416z" />
fonts/fontawesome/webfonts/fa-solid-900.ttf CHANGED
Binary file
fonts/fontawesome/webfonts/fa-solid-900.woff CHANGED
Binary file
fonts/fontawesome/webfonts/fa-solid-900.woff2 CHANGED
Binary file
img/svg/select-arrow-down-alt2-light.svg CHANGED
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="16" height="16"><path fill="#7d8690" d="M5 6l5 5 5-5 2 1-7 7-7-7z"/></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="12" height="12"><path fill="#7d8690" d="M5 6l5 5 5-5 2 1-7 7-7-7z"/></svg>
img/svg/select-arrow-down-alt2.svg CHANGED
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="16" height="16"><path fill="#000000" d="M5 6l5 5 5-5 2 1-7 7-7-7z"/></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="12" height="12"><path fill="#000000" d="M5 6l5 5 5-5 2 1-7 7-7-7z"/></svg>
img/transp_bg.png ADDED
Binary file
includes/admin-settings-welcome.php CHANGED
@@ -7,8 +7,7 @@ function fl_welcome_utm( $campaign ) {
7
  'utm_campaign' => $campaign,
8
  );
9
  }
10
-
11
- $blog_post_url = FLBuilderModel::get_store_url( 'beaver-builder-2-1-redridge', fl_welcome_utm( 'settings-welcome-blog-post' ) );
12
  $change_logs_url = FLBuilderModel::get_store_url( 'change-logs', fl_welcome_utm( 'settings-welcome-change-logs' ) );
13
  $upgrade_url = FLBuilderModel::get_upgrade_url( fl_welcome_utm( 'settings-welcome-upgrade' ) );
14
  $support_url = FLBuilderModel::get_store_url( 'beaver-builder-support', fl_welcome_utm( 'settings-welcome-support' ) );
@@ -69,15 +68,15 @@ $fb_url = 'https://www.facebook.com/groups/beaverbuilders/';
69
 
70
  <div class="fl-welcome-col">
71
 
72
- <h4><?php printf( __( 'What\'s New in Beaver Builder %s', 'fl-builder' ), '2.1 "Redridge"' ); ?></h4>
73
 
74
- <p><?php _e( 'We\'re thrilled to announce Beaver Builder 2.1 "Redridge". Beaver Builder 2.1 brings Gutenberg support and a major enhancement to the building experience with inline editing.', 'fl-builder' ); ?></p>
75
 
76
  <ul>
77
- <li><?php _e( 'Keep up with news & updates in the notification center.', 'fl-builder' ); ?></li>
78
- <li><?php _e( 'Edit text directly on-page with inline editing.', 'fl-builder' ); ?></li>
79
- <li><?php _e( 'Initial support for Gutenberg blocks and transitioning between editors has been added.', 'fl-builder' ); ?></li>
80
- <li><?php _e( 'Prevent clients from accessing Page Builder by user role.', 'fl-builder' ); ?></li>
81
  </ul>
82
 
83
  <p><?php printf( __( 'There\'s a whole lot more, too! Read about everything else on our <a href="%1$s" target="_blank">update post</a> or <a href="%2$s" target="_blank">change logs</a>.', 'fl-builder' ), $blog_post_url, $change_logs_url ); ?></p>
7
  'utm_campaign' => $campaign,
8
  );
9
  }
10
+ $blog_post_url = FLBuilderModel::get_store_url( 'beaver-builder-2-2-falcon-new-prebuilt-rows-unit-selectors-and-much-more', fl_welcome_utm( 'settings-welcome-blog-post' ) );
 
11
  $change_logs_url = FLBuilderModel::get_store_url( 'change-logs', fl_welcome_utm( 'settings-welcome-change-logs' ) );
12
  $upgrade_url = FLBuilderModel::get_upgrade_url( fl_welcome_utm( 'settings-welcome-upgrade' ) );
13
  $support_url = FLBuilderModel::get_store_url( 'beaver-builder-support', fl_welcome_utm( 'settings-welcome-support' ) );
68
 
69
  <div class="fl-welcome-col">
70
 
71
+ <h4><?php printf( __( 'What\'s New in Beaver Builder %s', 'fl-builder' ), '2.2 "Falcon"' ); ?></h4>
72
 
73
+ <p><?php _e( 'We\'re thrilled to announce Beaver Builder 2.2 "Falcon". Beaver Builder 2.2 brings a number of design-focused enhancements and quality-of-life improvements.', 'fl-builder' ); ?></p>
74
 
75
  <ul>
76
+ <li><?php _e( 'Leverage percent, em, and viewport-based units.', 'fl-builder' ); ?></li>
77
+ <li><?php _e( 'Mix and match over 80 new <a target="_blank" href="https://kb.wpbeaverbuilder.com/article/666-beaver-builder-2-2-release-features#prebuilt-rows">prebuilt row templates</a>.', 'fl-builder' ); ?></li>
78
+ <li><?php _e( 'Break out of the box with <a target="_blank" href="https://kb.wpbeaverbuilder.com/article/678-row-shape-overlays">row shapes</a> and <a target="_blank" href="https://kb.wpbeaverbuilder.com/article/669-color-gradients-for-row-and-column-backgrounds-and-overlays">gradients</a>, plus new border and text shadow effects.', 'fl-builder' ); ?></li>
79
+ <li><?php _e( '<a target="_blank" href="https://kb.wpbeaverbuilder.com/article/690-beaver-builder-2-2-changes-to-specific-modules">More module settings</a> and responsive capabilities give you more control with less code.', 'fl-builder' ); ?></li>
80
  </ul>
81
 
82
  <p><?php printf( __( 'There\'s a whole lot more, too! Read about everything else on our <a href="%1$s" target="_blank">update post</a> or <a href="%2$s" target="_blank">change logs</a>.', 'fl-builder' ), $blog_post_url, $change_logs_url ); ?></p>
includes/column-css.php CHANGED
@@ -1,33 +1,29 @@
1
- .fl-node-<?php echo $col->node; ?> {
2
- width: <?php echo $col->settings->size; ?>%;
3
- }
4
-
5
  <?php if ( ! empty( $col->settings->text_color ) ) : // Text Color ?>
6
  .fl-node-<?php echo $col->node; ?> {
7
- color: #<?php echo $col->settings->text_color; ?>;
8
  }
9
  .fl-builder-content .fl-node-<?php echo $col->node; ?> *:not(input):not(textarea):not(select):not(a):not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(.fl-menu-mobile-toggle) {
10
- color: #<?php echo $col->settings->text_color; ?>;
11
  }
12
  <?php endif; ?>
13
 
14
  <?php if ( ! empty( $col->settings->link_color ) ) : // Link Color ?>
15
  .fl-builder-content .fl-node-<?php echo $col->node; ?> a {
16
- color: #<?php echo $col->settings->link_color; ?>;
17
  }
18
  <?php elseif ( ! empty( $col->settings->text_color ) ) : ?>
19
  .fl-builder-content .fl-node-<?php echo $col->node; ?> a {
20
- color: #<?php echo $col->settings->text_color; ?>;
21
  }
22
  <?php endif; ?>
23
 
24
  <?php if ( ! empty( $col->settings->hover_color ) ) : // Link Hover Color ?>
25
  .fl-builder-content .fl-node-<?php echo $col->node; ?> a:hover {
26
- color: #<?php echo $col->settings->hover_color; ?>;
27
  }
28
  <?php elseif ( ! empty( $col->settings->text_color ) ) : ?>
29
  .fl-builder-content .fl-node-<?php echo $col->node; ?> a:hover {
30
- color: #<?php echo $col->settings->text_color; ?>;
31
  }
32
  <?php endif; ?>
33
 
@@ -44,7 +40,7 @@
44
  .fl-builder-content .fl-node-<?php echo $col->node; ?> h4 a,
45
  .fl-builder-content .fl-node-<?php echo $col->node; ?> h5 a,
46
  .fl-builder-content .fl-node-<?php echo $col->node; ?> h6 a {
47
- color: #<?php echo $col->settings->heading_color; ?>;
48
  }
49
  <?php elseif ( ! empty( $col->settings->text_color ) ) : ?>
50
  .fl-builder-content .fl-node-<?php echo $col->node; ?> h1,
@@ -59,76 +55,141 @@
59
  .fl-builder-content .fl-node-<?php echo $col->node; ?> h4 a,
60
  .fl-builder-content .fl-node-<?php echo $col->node; ?> h5 a,
61
  .fl-builder-content .fl-node-<?php echo $col->node; ?> h6 a {
62
- color: #<?php echo $col->settings->text_color; ?>;
63
  }
64
  <?php endif; ?>
65
 
66
- <?php if ( 'color' == $col->settings->bg_type && ! empty( $col->settings->bg_color ) ) : // Background Color ?>
67
- .fl-node-<?php echo $col->node; ?> > .fl-col-content {
68
- background-color: #<?php echo $col->settings->bg_color; ?>;
69
- background-color: rgba(<?php echo implode( ',', FLBuilderColor::hex_to_rgb( $col->settings->bg_color ) ) ?>, <?php echo $col->settings->bg_opacity / 100; ?>);
70
- }
71
- <?php endif; ?>
72
 
73
- <?php if ( 'photo' == $col->settings->bg_type && ! empty( $col->settings->bg_image ) ) : // Background Image ?>
74
- .fl-node-<?php echo $col->node; ?> > .fl-col-content {
75
- background-image: url(<?php echo $col->settings->bg_image_src; ?>);
76
- background-repeat: <?php echo $col->settings->bg_repeat; ?>;
77
- background-position: <?php echo $col->settings->bg_position; ?>;
78
- background-attachment: <?php echo $col->settings->bg_attachment; ?>;
79
- background-size: <?php echo $col->settings->bg_size; ?>;
80
- }
81
- <?php endif; ?>
82
 
83
- <?php if ( in_array( $col->settings->bg_type, array( 'photo' ) ) && ! empty( $col->settings->bg_overlay_color ) ) : // Background Overlay Color ?>
84
- .fl-node-<?php echo $col->node; ?> > .fl-col-content:after {
85
- background-color: #<?php echo $col->settings->bg_overlay_color; ?>;
86
- background-color: rgba(<?php echo implode( ',', FLBuilderColor::hex_to_rgb( $col->settings->bg_overlay_color ) ) ?>, <?php echo $col->settings->bg_overlay_opacity / 100; ?>);
87
- }
88
- <?php endif; ?>
 
89
 
90
- <?php if ( ! empty( $col->settings->border_type ) ) : // Border ?>
91
- .fl-builder-content .fl-node-<?php echo $col->node; ?> > .fl-col-content {
92
- border-style: <?php echo $col->settings->border_type; ?>;
93
- border-width: 0;
94
- <?php if ( ! empty( $col->settings->border_color ) ) : ?>
95
- border-color: #<?php echo $col->settings->border_color; ?>;
96
- border-color: rgba(<?php echo implode( ',', FLBuilderColor::hex_to_rgb( $col->settings->border_color ) ) ?>, <?php echo $col->settings->border_opacity / 100; ?>);
97
- <?php endif; ?>
98
- }
99
- <?php endif; ?>
 
 
 
 
 
100
 
101
- <?php if ( $global_settings->responsive_enabled ) : // Responsive Sizes ?>
102
-
103
- <?php if ( 'custom' == $col->settings->medium_size ) : ?>
104
- @media(max-width: <?php echo $global_settings->medium_breakpoint; ?>px) {
105
- .fl-builder-content .fl-node-<?php echo $col->node; ?> {
106
- max-width: none;
107
- width: <?php echo $col->settings->custom_medium_size; ?>% !important;
108
- -webkit-box-flex: 0 1 auto;
109
- -moz-box-flex: 0 1 auto;
110
- -webkit-flex: 0 1 auto;
111
- -ms-flex: 0 1 auto;
112
- flex: 0 1 auto;
113
- }
114
- }
115
- <?php endif; ?>
116
-
117
- <?php if ( 'custom' == $col->settings->responsive_size ) : ?>
118
- @media(max-width: <?php echo $global_settings->responsive_breakpoint; ?>px) {
119
- .fl-builder-content .fl-node-<?php echo $col->node; ?> {
120
- clear: none;
121
- float: left;
122
- max-width: none;
123
- width: <?php echo $col->settings->custom_responsive_size; ?>% !important;
124
- }
125
-
126
- <?php if ( 'reversed' == $col->settings->responsive_order ) : ?>
127
- .fl-col-group-custom-width.fl-col-group-responsive-reversed .fl-node-<?php echo $col->node; ?> {
128
- flex-basis: <?php echo $col->settings->custom_responsive_size; ?>%;
129
- }
130
- <?php endif; ?>
131
- }
132
- <?php endif; ?>
133
 
134
- <?php endif; ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <?php if ( ! empty( $col->settings->text_color ) ) : // Text Color ?>
2
  .fl-node-<?php echo $col->node; ?> {
3
+ color: <?php echo FLBuilderColor::hex_or_rgb( $col->settings->text_color ); ?>;
4
  }
5
  .fl-builder-content .fl-node-<?php echo $col->node; ?> *:not(input):not(textarea):not(select):not(a):not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(.fl-menu-mobile-toggle) {
6
+ color: <?php echo FLBuilderColor::hex_or_rgb( $col->settings->text_color ); ?>;
7
  }
8
  <?php endif; ?>
9
 
10
  <?php if ( ! empty( $col->settings->link_color ) ) : // Link Color ?>
11
  .fl-builder-content .fl-node-<?php echo $col->node; ?> a {
12
+ color: <?php echo FLBuilderColor::hex_or_rgb( $col->settings->link_color ); ?>;
13
  }
14
  <?php elseif ( ! empty( $col->settings->text_color ) ) : ?>
15
  .fl-builder-content .fl-node-<?php echo $col->node; ?> a {
16
+ color: <?php echo FLBuilderColor::hex_or_rgb( $col->settings->text_color ); ?>;
17
  }
18
  <?php endif; ?>
19
 
20
  <?php if ( ! empty( $col->settings->hover_color ) ) : // Link Hover Color ?>
21
  .fl-builder-content .fl-node-<?php echo $col->node; ?> a:hover {
22
+ color: <?php echo FLBuilderColor::hex_or_rgb( $col->settings->hover_color ); ?>;
23
  }
24
  <?php elseif ( ! empty( $col->settings->text_color ) ) : ?>
25
  .fl-builder-content .fl-node-<?php echo $col->node; ?> a:hover {
26
+ color: <?php echo FLBuilderColor::hex_or_rgb( $col->settings->text_color ); ?>;
27
  }
28
  <?php endif; ?>
29
 
40
  .fl-builder-content .fl-node-<?php echo $col->node; ?> h4 a,
41
  .fl-builder-content .fl-node-<?php echo $col->node; ?> h5 a,
42
  .fl-builder-content .fl-node-<?php echo $col->node; ?> h6 a {
43
+ color: <?php echo FLBuilderColor::hex_or_rgb( $col->settings->heading_color ); ?>;
44
  }
45
  <?php elseif ( ! empty( $col->settings->text_color ) ) : ?>
46
  .fl-builder-content .fl-node-<?php echo $col->node; ?> h1,
55
  .fl-builder-content .fl-node-<?php echo $col->node; ?> h4 a,
56
  .fl-builder-content .fl-node-<?php echo $col->node; ?> h5 a,
57
  .fl-builder-content .fl-node-<?php echo $col->node; ?> h6 a {
58
+ color: <?php echo FLBuilderColor::hex_or_rgb( $col->settings->text_color ); ?>;
59
  }
60
  <?php endif; ?>
61
 
62
+ <?php
 
 
 
 
 
63
 
64
+ $responsive_enabled = $global_settings->responsive_enabled;
 
 
 
 
 
 
 
 
65
 
66
+ // Width - Desktop
67
+ FLBuilderCSS::rule( array(
68
+ 'selector' => ".fl-node-$id",
69
+ 'props' => array(
70
+ 'width' => "{$settings->size}%",
71
+ ),
72
+ ) );
73
 
74
+ // Width - Medium
75
+ FLBuilderCSS::rule( array(
76
+ 'media' => 'medium',
77
+ 'selector' => ".fl-builder-content .fl-node-$id",
78
+ 'enabled' => '' !== $settings->size_medium && $responsive_enabled,
79
+ 'props' => array(
80
+ 'width' => "{$settings->size_medium}% !important",
81
+ 'max-width' => 'none',
82
+ '-webkit-box-flex' => '0 1 auto',
83
+ '-moz-box-flex' => '0 1 auto',
84
+ '-webkit-flex' => '0 1 auto',
85
+ '-ms-flex' => '0 1 auto',
86
+ 'flex' => '0 1 auto',
87
+ ),
88
+ ) );
89
 
90
+ // Width - Responsive
91
+ FLBuilderCSS::rule( array(
92
+ 'media' => 'responsive',
93
+ 'selector' => ".fl-builder-content .fl-node-$id",
94
+ 'enabled' => '' !== $settings->size_responsive && $responsive_enabled,
95
+ 'props' => array(
96
+ 'width' => "{$settings->size_responsive}% !important",
97
+ 'max-width' => 'none',
98
+ 'clear' => 'none',
99
+ 'float' => 'left',
100
+ ),
101
+ ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
102
 
103
+ // Stacking Order - Responsive
104
+ FLBuilderCSS::rule( array(
105
+ 'media' => 'responsive',
106
+ 'selector' => ".fl-col-group-custom-width.fl-col-group-responsive-reversed .fl-node-$id",
107
+ 'enabled' => 'reversed' == $settings->responsive_order && '' !== $settings->size_responsive && $responsive_enabled,
108
+ 'props' => array(
109
+ 'flex-basis' => "{$settings->size_responsive}%",
110
+ ),
111
+ ) );
112
+
113
+ // Background Color
114
+ FLBuilderCSS::rule( array(
115
+ 'selector' => ".fl-node-$id > .fl-col-content",
116
+ 'enabled' => 'color' == $settings->bg_type,
117
+ 'props' => array(
118
+ 'background-color' => $settings->bg_color,
119
+ ),
120
+ ) );
121
+
122
+ // Background Gradient
123
+ FLBuilderCSS::rule( array(
124
+ 'selector' => ".fl-node-$id > .fl-col-content",
125
+ 'enabled' => 'gradient' === $settings->bg_type,
126
+ 'props' => array(
127
+ 'background-image' => FLBuilderColor::gradient( $settings->bg_gradient ),
128
+ ),
129
+ ) );
130
+
131
+ // Background Color Overlay
132
+ FLBuilderCSS::rule( array(
133
+ 'selector' => ".fl-node-$id > .fl-col-content:after",
134
+ 'enabled' => 'none' !== $settings->bg_overlay_type && in_array( $settings->bg_type, array( 'photo' ) ),
135
+ 'props' => array(
136
+ 'background-color' => 'color' === $settings->bg_overlay_type ? $settings->bg_overlay_color : '',
137
+ 'background-image' => 'gradient' === $settings->bg_overlay_type ? FLBuilderColor::gradient( $settings->bg_overlay_gradient ) : '',
138
+ ),
139
+ ) );
140
+
141
+ // Background Photo - Desktop
142
+ FLBuilderCSS::rule( array(
143
+ 'selector' => ".fl-node-$id > .fl-col-content",
144
+ 'enabled' => 'photo' === $settings->bg_type,
145
+ 'props' => array(
146
+ 'background-image' => $settings->bg_image_src,
147
+ 'background-repeat' => $settings->bg_repeat,
148
+ 'background-position' => $settings->bg_position,
149
+ 'background-attachment' => $settings->bg_attachment,
150
+ 'background-size' => $settings->bg_size,
151
+ ),
152
+ ) );
153
+
154
+ // Background Photo - Medium
155
+ FLBuilderCSS::rule( array(
156
+ 'media' => 'medium',
157
+ 'selector' => ".fl-node-$id > .fl-col-content",
158
+ 'enabled' => 'photo' === $settings->bg_type,
159
+ 'props' => array(
160
+ 'background-image' => $settings->bg_image_medium_src,
161
+ 'background-repeat' => $settings->bg_repeat_medium,
162
+ 'background-position' => $settings->bg_position_medium,
163
+ 'background-attachment' => $settings->bg_attachment_medium,
164
+ 'background-size' => $settings->bg_size_medium,
165
+ ),
166
+ ) );
167
+
168
+ // Background Photo - Responsive
169
+ FLBuilderCSS::rule( array(
170
+ 'media' => 'responsive',
171
+ 'selector' => ".fl-node-$id > .fl-col-content",
172
+ 'enabled' => 'photo' === $settings->bg_type,
173
+ 'props' => array(
174
+ 'background-image' => $settings->bg_image_responsive_src,
175
+ 'background-repeat' => $settings->bg_repeat_responsive,
176
+ 'background-position' => $settings->bg_position_responsive,
177
+ 'background-attachment' => $settings->bg_attachment_responsive,
178
+ 'background-size' => $settings->bg_size_responsive,
179
+ ),
180
+ ) );
181
+
182
+ // Border
183
+ FLBuilderCSS::border_field_rule( array(
184
+ 'settings' => $settings,
185
+ 'setting_name' => 'border',
186
+ 'selector' => ".fl-node-$id > .fl-col-content",
187
+ ) );
188
+
189
+ // Minimum Height
190
+ FLBuilderCSS::responsive_rule( array(
191
+ 'settings' => $col->settings,
192
+ 'setting_name' => 'min_height',
193
+ 'selector' => ".fl-builder-content .fl-node-$id > .fl-col-content",
194
+ 'prop' => 'min-height',
195
+ ) );
includes/column-settings.php CHANGED
@@ -10,19 +10,43 @@ FLBuilder::register_settings_form('col', array(
10
  'title' => '',
11
  'fields' => array(
12
  'size' => array(
13
- 'type' => 'text',
14
- 'label' => __( 'Column Width', 'fl-builder' ),
15
  'default' => '',
16
- 'description' => '%',
17
- 'maxlength' => '5',
18
- 'size' => '6',
19
- 'preview' => array(
20
- 'type' => 'none',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
  ),
22
  ),
23
  'equal_height' => array(
24
  'type' => 'select',
25
- 'label' => __( 'Equalize Column Heights', 'fl-builder' ),
26
  'help' => __( 'Setting this to yes will make all of the columns in this group the same height regardless of how much content is in each of them.', 'fl-builder' ),
27
  'default' => 'no',
28
  'options' => array(
@@ -40,7 +64,7 @@ FLBuilder::register_settings_form('col', array(
40
  ),
41
  'content_alignment' => array(
42
  'type' => 'select',
43
- 'label' => __( 'Content Alignment', 'fl-builder' ),
44
  'default' => 'top',
45
  'options' => array(
46
  'top' => __( 'Top', 'fl-builder' ),
@@ -58,34 +82,42 @@ FLBuilder::register_settings_form('col', array(
58
  'fields' => array(
59
  'text_color' => array(
60
  'type' => 'color',
 
61
  'label' => __( 'Color', 'fl-builder' ),
62
  'show_reset' => true,
63
- 'preview' => array(
64
- 'type' => 'none',
 
65
  ),
66
  ),
67
  'link_color' => array(
68
  'type' => 'color',
 
69
  'label' => __( 'Link Color', 'fl-builder' ),
70
  'show_reset' => true,
71
- 'preview' => array(
72
- 'type' => 'none',
 
73
  ),
74
  ),
75
  'hover_color' => array(
76
  'type' => 'color',
 
77
  'label' => __( 'Link Hover Color', 'fl-builder' ),
78
  'show_reset' => true,
79
- 'preview' => array(
80
- 'type' => 'none',
 
81
  ),
82
  ),
83
  'heading_color' => array(
84
  'type' => 'color',
 
85
  'label' => __( 'Heading Color', 'fl-builder' ),
86
  'show_reset' => true,
87
- 'preview' => array(
88
- 'type' => 'none',
 
89
  ),
90
  ),
91
  ),
@@ -100,12 +132,16 @@ FLBuilder::register_settings_form('col', array(
100
  'options' => array(
101
  'none' => _x( 'None', 'Background type.', 'fl-builder' ),
102
  'color' => _x( 'Color', 'Background type.', 'fl-builder' ),
 
103
  'photo' => _x( 'Photo', 'Background type.', 'fl-builder' ),
104
  ),
105
  'toggle' => array(
106
  'color' => array(
107
  'sections' => array( 'bg_color' ),
108
  ),
 
 
 
109
  'photo' => array(
110
  'sections' => array( 'bg_photo', 'bg_overlay' ),
111
  ),
@@ -121,21 +157,26 @@ FLBuilder::register_settings_form('col', array(
121
  'fields' => array(
122
  'bg_color' => array(
123
  'type' => 'color',
 
124
  'label' => __( 'Color', 'fl-builder' ),
125
  'show_reset' => true,
 
126
  'preview' => array(
127
  'type' => 'none',
128
  ),
129
  ),
130
- 'bg_opacity' => array(
131
- 'type' => 'text',
132
- 'label' => __( 'Opacity', 'fl-builder' ),
133
- 'default' => '100',
134
- 'description' => '%',
135
- 'maxlength' => '3',
136
- 'size' => '5',
137
- 'preview' => array(
138
- 'type' => 'none',
 
 
 
139
  ),
140
  ),
141
  ),
@@ -147,30 +188,36 @@ FLBuilder::register_settings_form('col', array(
147
  'type' => 'photo',
148
  'show_remove' => true,
149
  'label' => __( 'Photo', 'fl-builder' ),
 
 
150
  'preview' => array(
151
- 'type' => 'none',
 
 
152
  ),
153
- 'connections' => array( 'photo' ),
154
  ),
155
  'bg_repeat' => array(
156
  'type' => 'select',
157
  'label' => __( 'Repeat', 'fl-builder' ),
158
  'default' => 'none',
 
159
  'options' => array(
160
  'no-repeat' => _x( 'None', 'Background repeat.', 'fl-builder' ),
161
  'repeat' => _x( 'Tile', 'Background repeat.', 'fl-builder' ),
162
  'repeat-x' => _x( 'Horizontal', 'Background repeat.', 'fl-builder' ),
163
  'repeat-y' => _x( 'Vertical', 'Background repeat.', 'fl-builder' ),
164
  ),
165
- 'help' => __( 'Repeat applies to how the image should display in the background. Choosing none will display the image as uploaded. Tile will repeat the image as many times as needed to fill the background horizontally and vertically. You can also specify the image to only repeat horizontally or vertically.', 'fl-builder' ),
166
  'preview' => array(
167
- 'type' => 'none',
 
 
168
  ),
169
  ),
170
  'bg_position' => array(
171
  'type' => 'select',
172
  'label' => __( 'Position', 'fl-builder' ),
173
  'default' => 'center center',
 
174
  'options' => array(
175
  'left top' => __( 'Left Top', 'fl-builder' ),
176
  'left center' => __( 'Left Center', 'fl-builder' ),
@@ -182,36 +229,41 @@ FLBuilder::register_settings_form('col', array(
182
  'center center' => __( 'Center', 'fl-builder' ),
183
  'center bottom' => __( 'Center Bottom', 'fl-builder' ),
184
  ),
185
- 'help' => __( 'Position will tell the image where it should sit in the background.', 'fl-builder' ),
186
  'preview' => array(
187
- 'type' => 'none',
 
 
188
  ),
189
  ),
190
  'bg_attachment' => array(
191
  'type' => 'select',
192
  'label' => __( 'Attachment', 'fl-builder' ),
193
  'default' => 'scroll',
 
194
  'options' => array(
195
  'scroll' => __( 'Scroll', 'fl-builder' ),
196
  'fixed' => __( 'Fixed', 'fl-builder' ),
197
  ),
198
- 'help' => __( 'Attachment will specify how the image reacts when scrolling a page. When scrolling is selected, the image will scroll with page scrolling. This is the default setting. Fixed will allow the image to scroll within the background if fill is selected in the scale setting.', 'fl-builder' ),
199
  'preview' => array(
200
- 'type' => 'none',
 
 
201
  ),
202
  ),
203
  'bg_size' => array(
204
  'type' => 'select',
205
  'label' => __( 'Scale', 'fl-builder' ),
206
  'default' => 'cover',
 
207
  'options' => array(
208
  'auto' => _x( 'None', 'Background scale.', 'fl-builder' ),
209
  'contain' => __( 'Fit', 'fl-builder' ),
210
  'cover' => __( 'Fill', 'fl-builder' ),
211
  ),
212
- 'help' => __( 'Scale applies to how the image should display in the background. You can select either fill or fit to the background.', 'fl-builder' ),
213
  'preview' => array(
214
- 'type' => 'none',
 
 
215
  ),
216
  ),
217
  ),
@@ -219,95 +271,57 @@ FLBuilder::register_settings_form('col', array(
219
  'bg_overlay' => array(
220
  'title' => __( 'Background Overlay', 'fl-builder' ),
221
  'fields' => array(
222
- 'bg_overlay_color' => array(
223
- 'type' => 'color',
224
- 'label' => __( 'Overlay Color', 'fl-builder' ),
225
- 'show_reset' => true,
226
- 'preview' => array(
227
- 'type' => 'none',
228
- ),
229
- ),
230
- 'bg_overlay_opacity' => array(
231
- 'type' => 'text',
232
- 'label' => __( 'Overlay Opacity', 'fl-builder' ),
233
- 'default' => '50',
234
- 'description' => '%',
235
- 'maxlength' => '3',
236
- 'size' => '5',
237
- 'preview' => array(
238
- 'type' => 'none',
239
- ),
240
- ),
241
- ),
242
- ),
243
- 'border' => array(
244
- 'title' => __( 'Border', 'fl-builder' ),
245
- 'fields' => array(
246
- 'border_type' => array(
247
  'type' => 'select',
248
- 'label' => __( 'Type', 'fl-builder' ),
249
- 'default' => '',
250
- 'help' => __( 'The type of border to use. Double borders must have a width of at least 3px to render properly.', 'fl-builder' ),
251
  'options' => array(
252
- '' => _x( 'None', 'Border type.', 'fl-builder' ),
253
- 'solid' => _x( 'Solid', 'Border type.', 'fl-builder' ),
254
- 'dashed' => _x( 'Dashed', 'Border type.', 'fl-builder' ),
255
- 'dotted' => _x( 'Dotted', 'Border type.', 'fl-builder' ),
256
- 'double' => _x( 'Double', 'Border type.', 'fl-builder' ),
257
  ),
258
  'toggle' => array(
259
- '' => array(
260
- 'fields' => array(),
261
- ),
262
- 'solid' => array(
263
- 'fields' => array( 'border_color', 'border_opacity', 'border' ),
264
- ),
265
- 'dashed' => array(
266
- 'fields' => array( 'border_color', 'border_opacity', 'border' ),
267
- ),
268
- 'dotted' => array(
269
- 'fields' => array( 'border_color', 'border_opacity', 'border' ),
270
  ),
271
- 'double' => array(
272
- 'fields' => array( 'border_color', 'border_opacity', 'border' ),
273
  ),
274
  ),
275
  'preview' => array(
276
  'type' => 'none',
277
  ),
278
  ),
279
- 'border_color' => array(
280
  'type' => 'color',
281
- 'label' => __( 'Color', 'fl-builder' ),
282
  'show_reset' => true,
 
283
  'preview' => array(
284
  'type' => 'none',
285
  ),
286
  ),
287
- 'border_opacity' => array(
288
- 'type' => 'text',
289
- 'label' => __( 'Opacity', 'fl-builder' ),
290
- 'default' => '100',
291
- 'description' => '%',
292
- 'maxlength' => '3',
293
- 'size' => '5',
294
- 'preview' => array(
295
- 'type' => 'none',
296
  ),
297
  ),
298
- 'border' => array(
299
- 'type' => 'dimension',
300
- 'label' => __( 'Width', 'fl-builder' ),
301
- 'description' => 'px',
302
- 'preview' => array(
303
- 'type' => 'none',
304
- ),
305
- 'responsive' => array(
306
- 'placeholder' => array(
307
- 'default' => '0',
308
- 'medium' => '',
309
- 'responsive' => '',
310
- ),
311
  ),
312
  ),
313
  ),
@@ -321,98 +335,74 @@ FLBuilder::register_settings_form('col', array(
321
  'title' => __( 'Spacing', 'fl-builder' ),
322
  'fields' => array(
323
  'margin' => array(
324
- 'type' => 'dimension',
325
- 'label' => __( 'Margins', 'fl-builder' ),
326
- 'description' => 'px',
327
- 'preview' => array(
328
- 'type' => 'none',
329
- ),
330
- 'placeholder' => '0',
331
- 'responsive' => true,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
332
  ),
333
  'padding' => array(
334
- 'type' => 'dimension',
335
- 'label' => __( 'Padding', 'fl-builder' ),
336
- 'description' => 'px',
337
- 'preview' => array(
338
- 'type' => 'none',
339
- ),
340
- 'placeholder' => '0',
341
- 'responsive' => true,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
342
  ),
343
  ),
344
  ),
345
- 'responsive' => array(
346
- 'title' => __( 'Responsive Layout', 'fl-builder' ),
347
  'fields' => array(
348
  'responsive_display' => array(
349
  'type' => 'select',
350
- 'label' => __( 'Display', 'fl-builder' ),
351
  'options' => array(
352
- '' => __( 'Always', 'fl-builder' ),
353
  'desktop' => __( 'Large Devices Only', 'fl-builder' ),
354
  'desktop-medium' => __( 'Large &amp; Medium Devices Only', 'fl-builder' ),
355
  'medium' => __( 'Medium Devices Only', 'fl-builder' ),
356
  'medium-mobile' => __( 'Medium &amp; Small Devices Only', 'fl-builder' ),
357
  'mobile' => __( 'Small Devices Only', 'fl-builder' ),
358
  ),
359
- 'help' => __( 'Choose whether to show or hide this column at different device sizes.', 'fl-builder' ),
360
- 'preview' => array(
361
- 'type' => 'none',
362
- ),
363
- ),
364
- 'medium_size' => array(
365
- 'type' => 'select',
366
- 'label' => __( 'Medium Device Width', 'fl-builder' ),
367
- 'help' => __( 'The width of this column on medium devices such as tablets.', 'fl-builder' ),
368
- 'options' => array(
369
- 'default' => __( 'Default', 'fl-builder' ),
370
- 'custom' => __( 'Custom', 'fl-builder' ),
371
- ),
372
- 'toggle' => array(
373
- 'custom' => array(
374
- 'fields' => array( 'custom_medium_size' ),
375
- ),
376
- ),
377
- 'preview' => array(
378
- 'type' => 'none',
379
- ),
380
- ),
381
- 'custom_medium_size' => array(
382
- 'type' => 'text',
383
- 'label' => __( 'Custom Medium Device Width', 'fl-builder' ),
384
- 'default' => '100',
385
- 'description' => '%',
386
- 'maxlength' => '5',
387
- 'size' => '6',
388
- 'preview' => array(
389
- 'type' => 'none',
390
- ),
391
- ),
392
- 'responsive_size' => array(
393
- 'type' => 'select',
394
- 'label' => __( 'Small Device Width', 'fl-builder' ),
395
- 'help' => __( 'The width of this column on small devices such as phones.', 'fl-builder' ),
396
- 'options' => array(
397
- 'default' => __( 'Default', 'fl-builder' ),
398
- 'custom' => __( 'Custom', 'fl-builder' ),
399
- ),
400
- 'toggle' => array(
401
- 'custom' => array(
402
- 'fields' => array( 'custom_responsive_size' ),
403
- ),
404
- ),
405
- 'preview' => array(
406
- 'type' => 'none',
407
- ),
408
- ),
409
- 'custom_responsive_size' => array(
410
- 'type' => 'text',
411
- 'label' => __( 'Custom Small Device Width', 'fl-builder' ),
412
- 'default' => '100',
413
- 'description' => '%',
414
- 'maxlength' => '5',
415
- 'size' => '6',
416
  'preview' => array(
417
  'type' => 'none',
418
  ),
@@ -430,11 +420,6 @@ FLBuilder::register_settings_form('col', array(
430
  'type' => 'none',
431
  ),
432
  ),
433
- ),
434
- ),
435
- 'visibility' => array(
436
- 'title' => __( 'Visibility', 'fl-builder' ),
437
- 'fields' => array(
438
  'visibility_display' => array(
439
  'type' => 'select',
440
  'label' => __( 'Display', 'fl-builder' ),
@@ -463,9 +448,39 @@ FLBuilder::register_settings_form('col', array(
463
  ),
464
  ),
465
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
466
  'css_selectors' => array(
467
  'title' => __( 'HTML Element', 'fl-builder' ),
468
  'fields' => array(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
469
  'id' => array(
470
  'type' => 'text',
471
  'label' => __( 'ID', 'fl-builder' ),
10
  'title' => '',
11
  'fields' => array(
12
  'size' => array(
13
+ 'type' => 'unit',
14
+ 'label' => __( 'Width', 'fl-builder' ),
15
  'default' => '',
16
+ 'responsive' => true,
17
+ 'slider' => true,
18
+ 'units' => array(
19
+ '%',
20
+ ),
21
+ 'preview' => array(
22
+ 'type' => 'none',
23
+ ),
24
+ ),
25
+ 'min_height' => array(
26
+ 'type' => 'unit',
27
+ 'label' => __( 'Minimum Height', 'fl-builder' ),
28
+ 'responsive' => true,
29
+ 'units' => array(
30
+ 'px',
31
+ 'vh',
32
+ 'vw',
33
+ ),
34
+ 'slider' => array(
35
+ 'px' => array(
36
+ 'min' => 0,
37
+ 'max' => 1000,
38
+ 'step' => 10,
39
+ ),
40
+ ),
41
+ 'preview' => array(
42
+ 'type' => 'css',
43
+ 'selector' => '.fl-col-content',
44
+ 'property' => 'min-height',
45
  ),
46
  ),
47
  'equal_height' => array(
48
  'type' => 'select',
49
+ 'label' => __( 'Equalize Heights', 'fl-builder' ),
50
  'help' => __( 'Setting this to yes will make all of the columns in this group the same height regardless of how much content is in each of them.', 'fl-builder' ),
51
  'default' => 'no',
52
  'options' => array(
64
  ),
65
  'content_alignment' => array(
66
  'type' => 'select',
67
+ 'label' => __( 'Vertical Alignment', 'fl-builder' ),
68
  'default' => 'top',
69
  'options' => array(
70
  'top' => __( 'Top', 'fl-builder' ),
82
  'fields' => array(
83
  'text_color' => array(
84
  'type' => 'color',
85
+ 'connections' => array( 'color' ),
86
  'label' => __( 'Color', 'fl-builder' ),
87
  'show_reset' => true,
88
+ 'show_alpha' => true,
89
+ 'preview' => array(
90
+ 'type' => 'none',
91
  ),
92
  ),
93
  'link_color' => array(
94
  'type' => 'color',
95
+ 'connections' => array( 'color' ),
96
  'label' => __( 'Link Color', 'fl-builder' ),
97
  'show_reset' => true,
98
+ 'show_alpha' => true,
99
+ 'preview' => array(
100
+ 'type' => 'none',
101
  ),
102
  ),
103
  'hover_color' => array(
104
  'type' => 'color',
105
+ 'connections' => array( 'color' ),
106
  'label' => __( 'Link Hover Color', 'fl-builder' ),
107
  'show_reset' => true,
108
+ 'show_alpha' => true,
109
+ 'preview' => array(
110
+ 'type' => 'none',
111
  ),
112
  ),
113
  'heading_color' => array(
114
  'type' => 'color',
115
+ 'connections' => array( 'color' ),
116
  'label' => __( 'Heading Color', 'fl-builder' ),
117
  'show_reset' => true,
118
+ 'show_alpha' => true,
119
+ 'preview' => array(
120
+ 'type' => 'none',
121
  ),
122
  ),
123
  ),
132
  'options' => array(
133
  'none' => _x( 'None', 'Background type.', 'fl-builder' ),
134
  'color' => _x( 'Color', 'Background type.', 'fl-builder' ),
135
+ 'gradient' => _x( 'Gradient', 'Background type.', 'fl-builder' ),
136
  'photo' => _x( 'Photo', 'Background type.', 'fl-builder' ),
137
  ),
138
  'toggle' => array(
139
  'color' => array(
140
  'sections' => array( 'bg_color' ),
141
  ),
142
+ 'gradient' => array(
143
+ 'sections' => array( 'bg_gradient' ),
144
+ ),
145
  'photo' => array(
146
  'sections' => array( 'bg_photo', 'bg_overlay' ),
147
  ),
157
  'fields' => array(
158
  'bg_color' => array(
159
  'type' => 'color',
160
+ 'connections' => array( 'color' ),
161
  'label' => __( 'Color', 'fl-builder' ),
162
  'show_reset' => true,
163
+ 'show_alpha' => true,
164
  'preview' => array(
165
  'type' => 'none',
166
  ),
167
  ),
168
+ ),
169
+ ),
170
+ 'bg_gradient' => array(
171
+ 'title' => __( 'Background Gradient', 'fl-builder' ),
172
+ 'fields' => array(
173
+ 'bg_gradient' => array(
174
+ 'type' => 'gradient',
175
+ 'label' => __( 'Gradient', 'fl-builder' ),
176
+ 'preview' => array(
177
+ 'type' => 'css',
178
+ 'selector' => '> .fl-col-content',
179
+ 'property' => 'background-image',
180
  ),
181
  ),
182
  ),
188
  'type' => 'photo',
189
  'show_remove' => true,
190
  'label' => __( 'Photo', 'fl-builder' ),
191
+ 'responsive' => true,
192
+ 'connections' => array( 'photo' ),
193
  'preview' => array(
194
+ 'type' => 'css',
195
+ 'selector' => '> .fl-col-content',
196
+ 'property' => 'background-image',
197
  ),
 
198
  ),
199
  'bg_repeat' => array(
200
  'type' => 'select',
201
  'label' => __( 'Repeat', 'fl-builder' ),
202
  'default' => 'none',
203
+ 'responsive' => true,
204
  'options' => array(
205
  'no-repeat' => _x( 'None', 'Background repeat.', 'fl-builder' ),
206
  'repeat' => _x( 'Tile', 'Background repeat.', 'fl-builder' ),
207
  'repeat-x' => _x( 'Horizontal', 'Background repeat.', 'fl-builder' ),
208
  'repeat-y' => _x( 'Vertical', 'Background repeat.', 'fl-builder' ),
209
  ),
 
210
  'preview' => array(
211
+ 'type' => 'css',
212
+ 'selector' => '> .fl-col-content',
213
+ 'property' => 'background-repeat',
214
  ),
215
  ),
216
  'bg_position' => array(
217
  'type' => 'select',
218
  'label' => __( 'Position', 'fl-builder' ),
219
  'default' => 'center center',
220
+ 'responsive' => true,
221
  'options' => array(
222
  'left top' => __( 'Left Top', 'fl-builder' ),
223
  'left center' => __( 'Left Center', 'fl-builder' ),
229
  'center center' => __( 'Center', 'fl-builder' ),
230
  'center bottom' => __( 'Center Bottom', 'fl-builder' ),
231
  ),
 
232
  'preview' => array(
233
+ 'type' => 'css',
234
+ 'selector' => '> .fl-col-content',
235
+ 'property' => 'background-position',
236
  ),
237
  ),
238
  'bg_attachment' => array(
239
  'type' => 'select',
240
  'label' => __( 'Attachment', 'fl-builder' ),
241
  'default' => 'scroll',
242
+ 'responsive' => true,
243
  'options' => array(
244
  'scroll' => __( 'Scroll', 'fl-builder' ),
245
  'fixed' => __( 'Fixed', 'fl-builder' ),
246
  ),
 
247
  'preview' => array(
248
+ 'type' => 'css',
249
+ 'selector' => '> .fl-col-content',
250
+ 'property' => 'background-attachment',
251
  ),
252
  ),
253
  'bg_size' => array(
254
  'type' => 'select',
255
  'label' => __( 'Scale', 'fl-builder' ),
256
  'default' => 'cover',
257
+ 'responsive' => true,
258
  'options' => array(
259
  'auto' => _x( 'None', 'Background scale.', 'fl-builder' ),
260
  'contain' => __( 'Fit', 'fl-builder' ),
261
  'cover' => __( 'Fill', 'fl-builder' ),
262
  ),
 
263
  'preview' => array(
264
+ 'type' => 'css',
265
+ 'selector' => '> .fl-col-content',
266
+ 'property' => 'background-size',
267
  ),
268
  ),
269
  ),
271
  'bg_overlay' => array(
272
  'title' => __( 'Background Overlay', 'fl-builder' ),
273
  'fields' => array(
274
+ 'bg_overlay_type' => array(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
275
  'type' => 'select',
276
+ 'label' => __( 'Overlay Type', 'fl-builder' ),
277
+ 'default' => 'color',
 
278
  'options' => array(
279
+ 'none' => __( 'None', 'fl-builder' ),
280
+ 'color' => __( 'Color', 'fl-builder' ),
281
+ 'gradient' => __( 'Gradient', 'fl-builder' ),
 
 
282
  ),
283
  'toggle' => array(
284
+ 'color' => array(
285
+ 'fields' => array( 'bg_overlay_color' ),
 
 
 
 
 
 
 
 
 
286
  ),
287
+ 'gradient' => array(
288
+ 'fields' => array( 'bg_overlay_gradient' ),
289
  ),
290
  ),
291
  'preview' => array(
292
  'type' => 'none',
293
  ),
294
  ),
295
+ 'bg_overlay_color' => array(
296
  'type' => 'color',
297
+ 'label' => __( 'Overlay Color', 'fl-builder' ),
298
  'show_reset' => true,
299
+ 'show_alpha' => true,
300
  'preview' => array(
301
  'type' => 'none',
302
  ),
303
  ),
304
+ 'bg_overlay_gradient' => array(
305
+ 'type' => 'gradient',
306
+ 'label' => __( 'Overlay Gradient', 'fl-builder' ),
307
+ 'preview' => array(
308
+ 'type' => 'css',
309
+ 'selector' => '> .fl-col-content:after',
310
+ 'property' => 'background-image',
 
 
311
  ),
312
  ),
313
+ ),
314
+ ),
315
+ 'border' => array(
316
+ 'title' => __( 'Border', 'fl-builder' ),
317
+ 'fields' => array(
318
+ 'border' => array(
319
+ 'type' => 'border',
320
+ 'label' => __( 'Border', 'fl-builder' ),
321
+ 'responsive' => true,
322
+ 'preview' => array(
323
+ 'type' => 'css',
324
+ 'selector' => '.fl-col-content',
 
325
  ),
326
  ),
327
  ),
335
  'title' => __( 'Spacing', 'fl-builder' ),
336
  'fields' => array(
337
  'margin' => array(
338
+ 'type' => 'dimension',
339
+ 'label' => __( 'Margins', 'fl-builder' ),
340
+ 'slider' => true,
341
+ 'units' => array(
342
+ 'px',
343
+ '%',
344
+ ),
345
+ 'preview' => array(
346
+ 'type' => 'css',
347
+ 'selector' => '.fl-col-content',
348
+ 'property' => 'margin',
349
+ ),
350
+ 'responsive' => array(
351
+ 'default_unit' => array(
352
+ 'default' => $global_settings->column_margins_unit,
353
+ 'medium' => $global_settings->column_margins_medium_unit,
354
+ 'responsive' => $global_settings->column_margins_responsive_unit,
355
+ ),
356
+ 'placeholder' => array(
357
+ 'default' => empty( $global_settings->column_margins ) ? '0' : $global_settings->column_margins,
358
+ 'medium' => empty( $global_settings->column_margins_medium ) ? '0' : $global_settings->column_margins_medium,
359
+ 'responsive' => empty( $global_settings->column_margins_responsive ) ? '0' : $global_settings->column_margins_responsive,
360
+ ),
361
+ ),
362
  ),
363
  'padding' => array(
364
+ 'type' => 'dimension',
365
+ 'label' => __( 'Padding', 'fl-builder' ),
366
+ 'slider' => true,
367
+ 'units' => array(
368
+ 'px',
369
+ 'em',
370
+ '%',
371
+ ),
372
+ 'preview' => array(
373
+ 'type' => 'css',
374
+ 'selector' => '.fl-col-content',
375
+ 'property' => 'padding',
376
+ ),
377
+ 'responsive' => array(
378
+ 'default_unit' => array(
379
+ 'default' => $global_settings->column_padding_unit,
380
+ 'medium' => $global_settings->column_padding_medium_unit,
381
+ 'responsive' => $global_settings->column_padding_responsive_unit,
382
+ ),
383
+ 'placeholder' => array(
384
+ 'default' => empty( $global_settings->column_padding ) ? '0' : $global_settings->column_padding,
385
+ 'medium' => empty( $global_settings->column_padding_medium ) ? '0' : $global_settings->column_padding_medium,
386
+ 'responsive' => empty( $global_settings->column_padding_responsive ) ? '0' : $global_settings->column_padding_responsive,
387
+ ),
388
+ ),
389
  ),
390
  ),
391
  ),
392
+ 'visibility' => array(
393
+ 'title' => __( 'Visibility', 'fl-builder' ),
394
  'fields' => array(
395
  'responsive_display' => array(
396
  'type' => 'select',
397
+ 'label' => __( 'Breakpoint', 'fl-builder' ),
398
  'options' => array(
399
+ '' => __( 'All', 'fl-builder' ),
400
  'desktop' => __( 'Large Devices Only', 'fl-builder' ),
401
  'desktop-medium' => __( 'Large &amp; Medium Devices Only', 'fl-builder' ),
402
  'medium' => __( 'Medium Devices Only', 'fl-builder' ),
403
  'medium-mobile' => __( 'Medium &amp; Small Devices Only', 'fl-builder' ),
404
  'mobile' => __( 'Small Devices Only', 'fl-builder' ),
405
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
406
  'preview' => array(
407
  'type' => 'none',
408
  ),
420
  'type' => 'none',
421
  ),
422
  ),
 
 
 
 
 
423
  'visibility_display' => array(
424
  'type' => 'select',
425
  'label' => __( 'Display', 'fl-builder' ),
448
  ),
449
  ),
450
  ),
451
+ 'animation' => array(
452
+ 'title' => __( 'Animation', 'fl-builder' ),
453
+ 'fields' => array(
454
+ 'animation' => array(
455
+ 'type' => 'animation',
456
+ 'label' => __( 'Animation', 'fl-builder' ),
457
+ 'preview' => array(
458
+ 'type' => 'animation',
459
+ 'selector' => '{node}',
460
+ ),
461
+ ),
462
+ ),
463
+ ),
464
  'css_selectors' => array(
465
  'title' => __( 'HTML Element', 'fl-builder' ),
466
  'fields' => array(
467
+ 'container_element' => array(
468
+ 'type' => 'select',
469
+ 'label' => __( 'Container Element', 'fl-builder' ),
470
+ 'default' => 'div',
471
+ 'options' => apply_filters( 'fl_builder_node_container_element_options', array(
472
+ 'div' => '&lt;div&gt;',
473
+ 'section' => '&lt;section&gt;',
474
+ 'article' => '&lt;article&gt;',
475
+ 'aside' => '&lt;aside&gt;',
476
+ 'header' => '&lt;header&gt;',
477
+ 'footer' => '&lt;footer&gt;',
478
+ ) ),
479
+ 'help' => __( 'Optional. Choose an appropriate HTML5 content sectioning element to use for this column to improve accessibility and machine-readability.', 'fl-builder' ),
480
+ 'preview' => array(
481
+ 'type' => 'none',
482
+ ),
483
+ ),
484
  'id' => array(
485
  'type' => 'text',
486
  'label' => __( 'ID', 'fl-builder' ),
includes/column.php CHANGED
@@ -1,5 +1,6 @@
1
- <div<?php echo FLBuilder::render_column_attributes( $col ); ?>>
 
2
  <div class="fl-col-content fl-node-content">
3
  <?php FLBuilder::render_modules( $col ); ?>
4
  </div>
5
- </div>
1
+ <?php $container_element = ( ! empty( $col->settings->container_element ) ? $col->settings->container_element : 'div' ); ?>
2
+ <<?php echo $container_element; ?><?php echo FLBuilder::render_column_attributes( $col ); ?>>
3
  <div class="fl-col-content fl-node-content">
4
  <?php FLBuilder::render_modules( $col ); ?>
5
  </div>
6
+ </<?php echo $container_element; ?>>
includes/compatibility.php CHANGED
@@ -634,3 +634,27 @@ if ( isset( $_GET['fl_builder'] ) ) {
634
  add_filter( "option_siteground_optimizer_$option", '__return_false' );
635
  }
636
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
634
  add_filter( "option_siteground_optimizer_$option", '__return_false' );
635
  }
636
  }
637
+
638
+ /**
639
+ * Enlighter stops builder from loading.
640
+ * @since 2.2
641
+ */
642
+ add_filter( 'enlighter_startup', 'fl_enlighter_frontend_editing' );
643
+ function fl_enlighter_frontend_editing( $enabled ) {
644
+ if ( isset( $_GET['fl_builder'] ) ) {
645
+ return false;
646
+ }
647
+ return $enabled;
648
+ }
649
+
650
+ /**
651
+ * Set sane settings for SSL
652
+ * @since 2.2.1
653
+ */
654
+ function fl_set_curl_safe_opts( $handle ) {
655
+ curl_setopt( $handle, CURLOPT_SSL_VERIFYPEER, 1 );
656
+ curl_setopt( $handle, CURLOPT_SSL_VERIFYHOST, 2 );
657
+ curl_setopt( $handle, CURLOPT_CAINFO, ABSPATH . WPINC . '/certificates/ca-bundle.crt' );
658
+ return $handle;
659
+ }
660
+
includes/global-settings.php CHANGED
@@ -40,29 +40,50 @@ FLBuilder::register_settings_form('global', array(
40
  'type' => 'unit',
41
  'label' => __( 'Margins', 'fl-builder' ),
42
  'default' => '0',
43
- 'placeholder' => '0',
44
- 'responsive' => true,
45
- 'description' => 'px',
46
  'sanitize' => 'absint',
 
 
 
 
 
 
 
 
 
 
 
47
  ),
48
  'row_padding' => array(
49
  'type' => 'unit',
50
  'label' => __( 'Padding', 'fl-builder' ),
51
  'default' => '20',
52
- 'placeholder' => '0',
53
- 'responsive' => true,
54
- 'description' => 'px',
55
  'sanitize' => 'absint',
 
 
 
 
 
 
 
 
 
 
 
 
56
  ),
57
  'row_width' => array(
58
- 'type' => 'text',
59
  'label' => __( 'Max Width', 'fl-builder' ),
60
  'default' => '1100',
61
  'maxlength' => '4',
62
  'size' => '5',
63
- 'description' => 'px',
64
  'sanitize' => 'absint',
65
  'help' => __( 'All rows will default to this width. You can override this and make a row full width in the settings for each row.', 'fl-builder' ),
 
 
 
 
 
66
  ),
67
  'row_width_default' => array(
68
  'type' => 'select',
@@ -89,6 +110,46 @@ FLBuilder::register_settings_form('global', array(
89
  ),
90
  ),
91
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
92
  'modules' => array(
93
  'title' => __( 'Modules', 'fl-builder' ),
94
  'fields' => array(
@@ -96,10 +157,18 @@ FLBuilder::register_settings_form('global', array(
96
  'type' => 'unit',
97
  'label' => __( 'Margins', 'fl-builder' ),
98
  'default' => '20',
99
- 'placeholder' => '0',
100
- 'responsive' => true,
101
- 'description' => 'px',
102
  'sanitize' => 'absint',
 
 
 
 
 
 
 
 
 
 
 
103
  ),
104
  ),
105
  ),
40
  'type' => 'unit',
41
  'label' => __( 'Margins', 'fl-builder' ),
42
  'default' => '0',
 
 
 
43
  'sanitize' => 'absint',
44
+ 'responsive' => array(
45
+ 'placeholder' => array(
46
+ 'default' => '0',
47
+ 'medium' => '',
48
+ 'responsive' => '',
49
+ ),
50
+ ),
51
+ 'units' => array(
52
+ 'px',
53
+ '%',
54
+ ),
55
  ),
56
  'row_padding' => array(
57
  'type' => 'unit',
58
  'label' => __( 'Padding', 'fl-builder' ),
59
  'default' => '20',
 
 
 
60
  'sanitize' => 'absint',
61
+ 'responsive' => array(
62
+ 'placeholder' => array(
63
+ 'default' => '0',
64
+ 'medium' => '',
65
+ 'responsive' => '',
66
+ ),
67
+ ),
68
+ 'units' => array(
69
+ 'px',
70
+ 'em',
71
+ '%',
72
+ ),
73
  ),
74
  'row_width' => array(
75
+ 'type' => 'unit',
76
  'label' => __( 'Max Width', 'fl-builder' ),
77
  'default' => '1100',
78
  'maxlength' => '4',
79
  'size' => '5',
 
80
  'sanitize' => 'absint',
81
  'help' => __( 'All rows will default to this width. You can override this and make a row full width in the settings for each row.', 'fl-builder' ),
82
+ 'units' => array(
83
+ 'px',
84
+ 'vw',
85
+ '%',
86
+ ),
87
  ),
88
  'row_width_default' => array(
89
  'type' => 'select',
110
  ),
111
  ),
112
  ),
113
+ 'columns' => array(
114
+ 'title' => __( 'Columns', 'fl-builder' ),
115
+ 'fields' => array(
116
+ 'column_margins' => array(
117
+ 'type' => 'unit',
118
+ 'label' => __( 'Margins', 'fl-builder' ),
119
+ 'default' => '',
120
+ 'sanitize' => 'absint',
121
+ 'responsive' => array(
122
+ 'placeholder' => array(
123
+ 'default' => '0',
124
+ 'medium' => '',
125
+ 'responsive' => '',
126
+ ),
127
+ ),
128
+ 'units' => array(
129
+ 'px',
130
+ '%',
131
+ ),
132
+ ),
133
+ 'column_padding' => array(
134
+ 'type' => 'unit',
135
+ 'label' => __( 'Padding', 'fl-builder' ),
136
+ 'default' => '',
137
+ 'sanitize' => 'absint',
138
+ 'responsive' => array(
139
+ 'placeholder' => array(
140
+ 'default' => '0',
141
+ 'medium' => '',
142
+ 'responsive' => '',
143
+ ),
144
+ ),
145
+ 'units' => array(
146
+ 'px',
147
+ 'em',
148
+ '%',
149
+ ),
150
+ ),
151
+ ),
152
+ ),
153
  'modules' => array(
154
  'title' => __( 'Modules', 'fl-builder' ),
155
  'fields' => array(
157
  'type' => 'unit',
158
  'label' => __( 'Margins', 'fl-builder' ),
159
  'default' => '20',
 
 
 
160
  'sanitize' => 'absint',
161
+ 'responsive' => array(
162
+ 'placeholder' => array(
163
+ 'default' => '0',
164
+ 'medium' => '',
165
+ 'responsive' => '',
166
+ ),
167
+ ),
168
+ 'units' => array(
169
+ 'px',
170
+ '%',
171
+ ),
172
  ),
173
  ),
174
  ),
includes/jquery.php DELETED
@@ -1,8 +0,0 @@
1
- <script type="text/javascript">
2
-
3
- if(typeof jQuery == 'undefined' || typeof jQuery.fn.on == 'undefined') {
4
- document.write('<script src="<?php echo includes_url( 'js/jquery/jquery.js' ); ?>"><\/script>');
5
- document.write('<script src="<?php echo includes_url( 'js/jquery/jquery-migrate.min.js' ); ?>"><\/script>');
6
- }
7
-
8
- </script>
 
 
 
 
 
 
 
 
includes/module-settings.php CHANGED
@@ -9,28 +9,39 @@ FLBuilder::register_settings_form('module_advanced', array(
9
  'title' => __( 'Spacing', 'fl-builder' ),
10
  'fields' => array(
11
  'margin' => array(
12
- 'type' => 'dimension',
13
- 'label' => __( 'Margins', 'fl-builder' ),
14
- 'description' => 'px',
15
- 'preview' => array(
16
- 'type' => 'none',
 
 
 
 
 
 
17
  ),
18
  'responsive' => array(
 
 
 
 
 
19
  'placeholder' => array(
20
- 'default' => ( isset( $global_settings->module_margins ) ) ? $global_settings->module_margins : '',
21
- 'medium' => ( isset( $global_settings->module_margins_medium ) ) ? $global_settings->module_margins_medium : '',
22
- 'responsive' => ( isset( $global_settings->module_margins_responsive ) ) ? $global_settings->module_margins_responsive : '',
23
  ),
24
  ),
25
  ),
26
  ),
27
  ),
28
- 'responsive' => array(
29
- 'title' => __( 'Responsive Layout', 'fl-builder' ),
30
  'fields' => array(
31
  'responsive_display' => array(
32
  'type' => 'select',
33
- 'label' => __( 'Display', 'fl-builder' ),
34
  'options' => array(
35
  '' => __( 'Always', 'fl-builder' ),
36
  'desktop' => __( 'Large Devices Only', 'fl-builder' ),
@@ -39,16 +50,10 @@ FLBuilder::register_settings_form('module_advanced', array(
39
  'medium-mobile' => __( 'Medium &amp; Small Devices Only', 'fl-builder' ),
40
  'mobile' => __( 'Small Devices Only', 'fl-builder' ),
41
  ),
42
- 'help' => __( 'Choose whether to show or hide this module at different device sizes.', 'fl-builder' ),
43
  'preview' => array(
44
  'type' => 'none',
45
  ),
46
  ),
47
- ),
48
- ),
49
- 'visibility' => array(
50
- 'title' => __( 'Visibility', 'fl-builder' ),
51
- 'fields' => array(
52
  'visibility_display' => array(
53
  'type' => 'select',
54
  'label' => __( 'Display', 'fl-builder' ),
@@ -77,34 +82,15 @@ FLBuilder::register_settings_form('module_advanced', array(
77
  ),
78
  ),
79
  ),
80
- 'animation' => array(
81
  'title' => __( 'Animation', 'fl-builder' ),
82
  'fields' => array(
83
- 'animation' => array(
84
- 'type' => 'select',
85
- 'label' => __( 'Style', 'fl-builder' ),
86
- 'options' => array(
87
- '' => _x( 'None', 'Animation style.', 'fl-builder' ),
88
- 'fade-in' => _x( 'Fade In', 'Animation style.', 'fl-builder' ),
89
- 'slide-left' => _x( 'Slide Left', 'Animation style.', 'fl-builder' ),
90
- 'slide-right' => _x( 'Slide Right', 'Animation style.', 'fl-builder' ),
91
- 'slide-up' => _x( 'Slide Up', 'Animation style.', 'fl-builder' ),
92
- 'slide-down' => _x( 'Slide Down', 'Animation style.', 'fl-builder' ),
93
- ),
94
- 'preview' => array(
95
- 'type' => 'none',
96
- ),
97
- ),
98
- 'animation_delay' => array(
99
- 'type' => 'text',
100
- 'label' => __( 'Delay', 'fl-builder' ),
101
- 'default' => '0.0',
102
- 'maxlength' => '4',
103
- 'size' => '5',
104
- 'description' => _x( 'seconds', 'Value unit for form field of time in seconds. Such as: "5 seconds"', 'fl-builder' ),
105
- 'help' => __( 'The amount of time in seconds before this animation starts.', 'fl-builder' ),
106
- 'preview' => array(
107
- 'type' => 'none',
108
  ),
109
  ),
110
  ),
@@ -112,6 +98,23 @@ FLBuilder::register_settings_form('module_advanced', array(
112
  'css_selectors' => array(
113
  'title' => __( 'HTML Element', 'fl-builder' ),
114
  'fields' => array(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
115
  'id' => array(
116
  'type' => 'text',
117
  'label' => __( 'ID', 'fl-builder' ),
9
  'title' => __( 'Spacing', 'fl-builder' ),
10
  'fields' => array(
11
  'margin' => array(
12
+ 'type' => 'dimension',
13
+ 'label' => __( 'Margins', 'fl-builder' ),
14
+ 'slider' => true,
15
+ 'units' => array(
16
+ 'px',
17
+ '%',
18
+ ),
19
+ 'preview' => array(
20
+ 'type' => 'css',
21
+ 'selector' => '.fl-module-content',
22
+ 'property' => 'margin',
23
  ),
24
  'responsive' => array(
25
+ 'default_unit' => array(
26
+ 'default' => $global_settings->module_margins_unit,
27
+ 'medium' => $global_settings->module_margins_medium_unit,
28
+ 'responsive' => $global_settings->module_margins_responsive_unit,
29
+ ),
30
  'placeholder' => array(
31
+ 'default' => empty( $global_settings->module_margins ) ? '0' : $global_settings->module_margins,
32
+ 'medium' => empty( $global_settings->module_margins_medium ) ? '0' : $global_settings->module_margins_medium,
33
+ 'responsive' => empty( $global_settings->module_margins_responsive ) ? '0' : $global_settings->module_margins_responsive,
34
  ),
35
  ),
36
  ),
37
  ),
38
  ),
39
+ 'visibility' => array(
40
+ 'title' => __( 'Visibility', 'fl-builder' ),
41
  'fields' => array(
42
  'responsive_display' => array(
43
  'type' => 'select',
44
+ 'label' => __( 'Breakpoint', 'fl-builder' ),
45
  'options' => array(
46
  '' => __( 'Always', 'fl-builder' ),
47
  'desktop' => __( 'Large Devices Only', 'fl-builder' ),
50
  'medium-mobile' => __( 'Medium &amp; Small Devices Only', 'fl-builder' ),
51
  'mobile' => __( 'Small Devices Only', 'fl-builder' ),
52
  ),
 
53
  'preview' => array(
54
  'type' => 'none',
55
  ),
56
  ),
 
 
 
 
 
57
  'visibility_display' => array(
58
  'type' => 'select',
59
  'label' => __( 'Display', 'fl-builder' ),
82
  ),
83
  ),
84
  ),
85
+ 'animation' => array(
86
  'title' => __( 'Animation', 'fl-builder' ),
87
  'fields' => array(
88
+ 'animation' => array(
89
+ 'type' => 'animation',
90
+ 'label' => __( 'Animation', 'fl-builder' ),
91
+ 'preview' => array(
92
+ 'type' => 'animation',
93
+ 'selector' => '{node}',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
94
  ),
95
  ),
96
  ),
98
  'css_selectors' => array(
99
  'title' => __( 'HTML Element', 'fl-builder' ),
100
  'fields' => array(
101
+ 'container_element' => array(
102
+ 'type' => 'select',
103
+ 'label' => __( 'Container Element', 'fl-builder' ),
104
+ 'default' => 'div',
105
+ 'options' => apply_filters( 'fl_builder_node_container_element_options', array(
106
+ 'div' => '&lt;div&gt;',
107
+ 'section' => '&lt;section&gt;',
108
+ 'article' => '&lt;article&gt;',
109
+ 'aside' => '&lt;aside&gt;',
110
+ 'header' => '&lt;header&gt;',
111
+ 'footer' => '&lt;footer&gt;',
112
+ ) ),
113
+ 'help' => __( 'Optional. Choose an appropriate HTML5 content sectioning element to use for this module to improve accessibility and machine-readability.', 'fl-builder' ),
114
+ 'preview' => array(
115
+ 'type' => 'none',
116
+ ),
117
+ ),
118
  'id' => array(
119
  'type' => 'text',
120
  'label' => __( 'ID', 'fl-builder' ),
includes/module.php CHANGED
@@ -1,4 +1,5 @@
1
- <div<?php FLBuilder::render_module_attributes( $module ); ?>>
 
2
  <div class="fl-module-content fl-node-content">
3
  <?php
4
  ob_start();
@@ -12,6 +13,7 @@
12
  $out = ob_get_clean();
13
 
14
  echo apply_filters( 'fl_builder_render_module_content', $out, $module );
 
15
  ?>
16
  </div>
17
- </div>
1
+ <?php $container_element = ( ! empty( $module->settings->container_element ) ? $module->settings->container_element : 'div' ); ?>
2
+ <<?php echo $container_element; ?><?php FLBuilder::render_module_attributes( $module ); ?>>
3
  <div class="fl-module-content fl-node-content">
4
  <?php
5
  ob_start();
13
  $out = ob_get_clean();
14
 
15
  echo apply_filters( 'fl_builder_render_module_content', $out, $module );
16
+
17
  ?>
18
  </div>
19
+ </<?php echo $container_element; ?>>
includes/row-css.php CHANGED
@@ -1,131 +1,64 @@
1
- <?php if ( ! empty( $row->settings->text_color ) ) : // Text Color ?>
2
- .fl-node-<?php echo $row->node; ?> {
3
- color: #<?php echo $row->settings->text_color; ?>;
4
  }
5
- .fl-builder-content .fl-node-<?php echo $row->node; ?> *:not(input):not(textarea):not(select):not(a):not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(.fl-menu-mobile-toggle) {
6
  color: inherit;
7
  }
8
  <?php endif; ?>
9
 
10
- <?php if ( ! empty( $row->settings->link_color ) ) : // Link Color ?>
11
- .fl-builder-content .fl-node-<?php echo $row->node; ?> a {
12
- color: #<?php echo $row->settings->link_color; ?>;
13
  }
14
- <?php elseif ( ! empty( $row->settings->text_color ) ) : ?>
15
- .fl-builder-content .fl-node-<?php echo $row->node; ?> a {
16
- color: #<?php echo $row->settings->text_color; ?>;
17
  }
18
  <?php endif; ?>
19
 
20
- <?php if ( ! empty( $row->settings->hover_color ) ) : // Link Hover Color ?>
21
- .fl-builder-content .fl-node-<?php echo $row->node; ?> a:hover {
22
- color: #<?php echo $row->settings->hover_color; ?>;
23
  }
24
- <?php elseif ( ! empty( $row->settings->text_color ) ) : ?>
25
- .fl-builder-content .fl-node-<?php echo $row->node; ?> a:hover {
26
- color: #<?php echo $row->settings->text_color; ?>;
27
  }
28
  <?php endif; ?>
29
 
30
- <?php if ( ! empty( $row->settings->heading_color ) ) : // Heading Color ?>
31
- .fl-builder-content .fl-node-<?php echo $row->node; ?> h1,
32
- .fl-builder-content .fl-node-<?php echo $row->node; ?> h2,
33
- .fl-builder-content .fl-node-<?php echo $row->node; ?> h3,
34
- .fl-builder-content .fl-node-<?php echo $row->node; ?> h4,
35
- .fl-builder-content .fl-node-<?php echo $row->node; ?> h5,
36
- .fl-builder-content .fl-node-<?php echo $row->node; ?> h6,
37
- .fl-builder-content .fl-node-<?php echo $row->node; ?> h1 a,
38
- .fl-builder-content .fl-node-<?php echo $row->node; ?> h2 a,
39
- .fl-builder-content .fl-node-<?php echo $row->node; ?> h3 a,
40
- .fl-builder-content .fl-node-<?php echo $row->node; ?> h4 a,
41
- .fl-builder-content .fl-node-<?php echo $row->node; ?> h5 a,
42
- .fl-builder-content .fl-node-<?php echo $row->node; ?> h6 a {
43
- color: #<?php echo $row->settings->heading_color; ?>;
44
- }
45
- <?php elseif ( ! empty( $row->settings->text_color ) ) : ?>
46
- .fl-builder-content .fl-node-<?php echo $row->node; ?> h1,
47
- .fl-builder-content .fl-node-<?php echo $row->node; ?> h2,
48
- .fl-builder-content .fl-node-<?php echo $row->node; ?> h3,
49
- .fl-builder-content .fl-node-<?php echo $row->node; ?> h4,
50
- .fl-builder-content .fl-node-<?php echo $row->node; ?> h5,
51
- .fl-builder-content .fl-node-<?php echo $row->node; ?> h6,
52
- .fl-builder-content .fl-node-<?php echo $row->node; ?> h1 a,
53
- .fl-builder-content .fl-node-<?php echo $row->node; ?> h2 a,
54
- .fl-builder-content .fl-node-<?php echo $row->node; ?> h3 a,
55
- .fl-builder-content .fl-node-<?php echo $row->node; ?> h4 a,
56
- .fl-builder-content .fl-node-<?php echo $row->node; ?> h5 a,
57
- .fl-builder-content .fl-node-<?php echo $row->node; ?> h6 a {
58
- color: #<?php echo $row->settings->text_color; ?>;
59
- }
60
- <?php endif; ?>
61
-
62
- <?php if ( in_array( $row->settings->bg_type, array( 'color', 'photo', 'parallax', 'slideshow', 'video' ) ) && ! empty( $row->settings->bg_color ) ) : // Background Color ?>
63
- .fl-node-<?php echo $row->node; ?> > .fl-row-content-wrap {
64
- background-color: #<?php echo $row->settings->bg_color; ?>;
65
- background-color: rgba(<?php echo implode( ',', FLBuilderColor::hex_to_rgb( $row->settings->bg_color ) ) ?>, <?php echo $row->settings->bg_opacity / 100; ?>);
66
- }
67
- <?php endif; ?>
68
-
69
- <?php if ( 'photo' == $row->settings->bg_type && ! empty( $row->settings->bg_image_src ) ) : // Background Photo ?>
70
- .fl-node-<?php echo $row->node; ?> > .fl-row-content-wrap {
71
- background-image: url(<?php echo $row->settings->bg_image_src; ?>);
72
- background-repeat: <?php echo $row->settings->bg_repeat; ?>;
73
- background-position: <?php echo $row->settings->bg_position; ?>;
74
- background-attachment: <?php echo $row->settings->bg_attachment; ?>;
75
- background-size: <?php echo $row->settings->bg_size; ?>;
76
- }
77
- <?php endif; ?>
78
-
79
- <?php if ( in_array( $row->settings->bg_type, array( 'photo', 'parallax', 'slideshow', 'video' ) ) && ! empty( $row->settings->bg_overlay_color ) ) : // Background Color Overlay ?>
80
- .fl-node-<?php echo $row->node; ?> > .fl-row-content-wrap:after {
81
- background-color: #<?php echo $row->settings->bg_overlay_color; ?>;
82
- background-color: rgba(<?php echo implode( ',', FLBuilderColor::hex_to_rgb( $row->settings->bg_overlay_color ) ) ?>, <?php echo $row->settings->bg_overlay_opacity / 100; ?>);
83
- }
84
- <?php endif; ?>
85
-
86
- <?php if ( 'parallax' == $row->settings->bg_type && ! empty( $row->settings->bg_parallax_image_src ) ) : // Parallax Background ?>
87
- .fl-node-<?php echo $row->node; ?> > .fl-row-content-wrap {
88
- background-repeat: no-repeat;
89
- background-position: center center;
90
- background-attachment: fixed;
91
- background-size: cover;
92
- }
93
- .fl-builder-mobile .fl-node-<?php echo $row->node; ?> > .fl-row-content-wrap {
94
- background-image: url(<?php echo $row->settings->bg_parallax_image_src; ?>);
95
- background-attachment: scroll;
96
- background-position: center center;
97
- }
98
- <?php endif; ?>
99
-
100
- <?php if ( ! empty( $row->settings->border_type ) ) : // Border ?>
101
- .fl-node-<?php echo $row->node; ?> > .fl-row-content-wrap {
102
- border-style: <?php echo $row->settings->border_type; ?>;
103
- border-width: 0;
104
- <?php if ( ! empty( $row->settings->border_color ) ) : ?>
105
- border-color: #<?php echo $row->settings->border_color; ?>;
106
- border-color: rgba(<?php echo implode( ',', FLBuilderColor::hex_to_rgb( $row->settings->border_color ) ) ?>, <?php echo $row->settings->border_opacity / 100; ?>);
107
- <?php endif; ?>
108
  }
109
  <?php endif; ?>
110
 
111
- <?php
112
- // Row resize support
113
- $has_max_width = ! empty( $row->settings->max_content_width );
114
- $is_row_fixed = ( 'fixed' === $row->settings->width );
115
- $is_row_content_fixed = ( 'fixed' === $row->settings->content_width );
116
- $are_both_full_width = ( ! $is_row_fixed && ! $is_row_content_fixed );
117
-
118
- if ( $has_max_width && ! $are_both_full_width ) {
119
- if ( $is_row_fixed ) {
120
- print '.fl-node-' . $row->node . ".fl-row-fixed-width,\n .fl-node-" . $row->node . " .fl-row-fixed-width {\n";
121
- } else {
122
- print '.fl-node-' . $row->node . " .fl-row-content {\n";
123
- }
124
- print "\tmax-width: " . $row->settings->max_content_width . "px;\n";
125
- print "}\n";
126
- }
127
- ?>
128
-
129
  <?php if ( $row->settings->bg_video_audio ) : ?>
130
  .fl-node-<?php echo $row->node; ?> .fl-bg-video-audio {
131
  display: none;
@@ -148,3 +81,140 @@ if ( $has_max_width && ! $are_both_full_width ) {
148
  bottom: 0;
149
  }
150
  <?php endif; ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! empty( $settings->text_color ) ) : // Text Color ?>
2
+ .fl-node-<?php echo $id; ?> {
3
+ color: <?php echo FLBuilderColor::hex_or_rgb( $settings->text_color ); ?>;
4
  }
5
+ .fl-builder-content .fl-node-<?php echo $id; ?> *:not(input):not(textarea):not(select):not(a):not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(.fl-menu-mobile-toggle) {
6
  color: inherit;
7
  }
8
  <?php endif; ?>
9
 
10
+ <?php if ( ! empty( $settings->link_color ) ) : // Link Color ?>
11
+ .fl-builder-content .fl-node-<?php echo $id; ?> a {
12
+ color: <?php echo FLBuilderColor::hex_or_rgb( $settings->link_color ); ?>;
13
  }
14
+ <?php elseif ( ! empty( $settings->text_color ) ) : ?>
15
+ .fl-builder-content .fl-node-<?php echo $id; ?> a {
16
+ color: <?php echo FLBuilderColor::hex_or_rgb( $settings->text_color ); ?>;
17
  }
18
  <?php endif; ?>
19
 
20
+ <?php if ( ! empty( $settings->hover_color ) ) : // Link Hover Color ?>
21
+ .fl-builder-content .fl-node-<?php echo $id; ?> a:hover {
22
+ color: <?php echo FLBuilderColor::hex_or_rgb( $settings->hover_color ); ?>;
23
  }
24
+ <?php elseif ( ! empty( $settings->text_color ) ) : ?>
25
+ .fl-builder-content .fl-node-<?php echo $id; ?> a:hover {
26
+ color: <?php echo FLBuilderColor::hex_or_rgb( $settings->text_color ); ?>;
27
  }
28
  <?php endif; ?>
29
 
30
+ <?php if ( ! empty( $settings->heading_color ) ) : // Heading Color ?>
31
+ .fl-builder-content .fl-node-<?php echo $id; ?> h1,
32
+ .fl-builder-content .fl-node-<?php echo $id; ?> h2,
33
+ .fl-builder-content .fl-node-<?php echo $id; ?> h3,
34
+ .fl-builder-content .fl-node-<?php echo $id; ?> h4,
35
+ .fl-builder-content .fl-node-<?php echo $id; ?> h5,
36
+ .fl-builder-content .fl-node-<?php echo $id; ?> h6,
37
+ .fl-builder-content .fl-node-<?php echo $id; ?> h1 a,
38
+ .fl-builder-content .fl-node-<?php echo $id; ?> h2 a,
39
+ .fl-builder-content .fl-node-<?php echo $id; ?> h3 a,
40
+ .fl-builder-content .fl-node-<?php echo $id; ?> h4 a,
41
+ .fl-builder-content .fl-node-<?php echo $id; ?> h5 a,
42
+ .fl-builder-content .fl-node-<?php echo $id; ?> h6 a {
43
+ color: <?php echo FLBuilderColor::hex_or_rgb( $settings->heading_color ); ?>;
44
+ }
45
+ <?php elseif ( ! empty( $settings->text_color ) ) : ?>
46
+ .fl-builder-content .fl-node-<?php echo $id; ?> h1,
47
+ .fl-builder-content .fl-node-<?php echo $id; ?> h2,
48
+ .fl-builder-content .fl-node-<?php echo $id; ?> h3,
49
+ .fl-builder-content .fl-node-<?php echo $id; ?> h4,
50
+ .fl-builder-content .fl-node-<?php echo $id; ?> h5,
51
+ .fl-builder-content .fl-node-<?php echo $id; ?> h6,
52
+ .fl-builder-content .fl-node-<?php echo $id; ?> h1 a,
53
+ .fl-builder-content .fl-node-<?php echo $id; ?> h2 a,
54
+ .fl-builder-content .fl-node-<?php echo $id; ?> h3 a,
55
+ .fl-builder-content .fl-node-<?php echo $id; ?> h4 a,
56
+ .fl-builder-content .fl-node-<?php echo $id; ?> h5 a,
57
+ .fl-builder-content .fl-node-<?php echo $id; ?> h6 a {
58
+ color: <?php echo FLBuilderColor::hex_or_rgb( $settings->text_color ); ?>;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
  }
60
  <?php endif; ?>
61
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
62
  <?php if ( $row->settings->bg_video_audio ) : ?>
63
  .fl-node-<?php echo $row->node; ?> .fl-bg-video-audio {
64
  display: none;
81
  bottom: 0;
82
  }
83
  <?php endif; ?>
84
+
85
+ <?php
86
+
87
+ // Background Color
88
+ FLBuilderCSS::rule( array(
89
+ 'selector' => ".fl-node-$id > .fl-row-content-wrap",
90
+ 'enabled' => in_array( $settings->bg_type, array( 'color', 'photo', 'parallax', 'slideshow', 'video' ) ),
91
+ 'props' => array(
92
+ 'background-color' => $settings->bg_color,
93
+ ),
94
+ ) );
95
+
96
+ // Background Gradient
97
+ FLBuilderCSS::rule( array(
98
+ 'selector' => ".fl-node-$id > .fl-row-content-wrap",
99
+ 'enabled' => 'gradient' === $settings->bg_type,
100
+ 'props' => array(
101
+ 'background-image' => FLBuilderColor::gradient( $settings->bg_gradient ),
102
+ ),
103
+ ) );
104
+
105
+ // Background Overlay
106
+ FLBuilderCSS::rule( array(
107
+ 'selector' => ".fl-node-$id > .fl-row-content-wrap:after",
108
+ 'enabled' => 'none' !== $settings->bg_overlay_type && in_array( $settings->bg_type, array( 'photo', 'parallax', 'slideshow', 'video' ) ),
109
+ 'props' => array(
110
+ 'background-color' => 'color' === $settings->bg_overlay_type ? $settings->bg_overlay_color : '',
111
+ 'background-image' => 'gradient' === $settings->bg_overlay_type ? FLBuilderColor::gradient( $settings->bg_overlay_gradient ) : '',
112
+ ),
113
+ ) );
114
+
115
+ // Background Photo - Desktop
116
+ FLBuilderCSS::rule( array(
117
+ 'selector' => ".fl-node-$id > .fl-row-content-wrap",
118
+ 'enabled' => 'photo' === $settings->bg_type,
119
+ 'props' => array(
120
+ 'background-image' => $settings->bg_image_src,
121
+ 'background-repeat' => $settings->bg_repeat,
122
+ 'background-position' => $settings->bg_position,
123
+ 'background-attachment' => $settings->bg_attachment,
124
+ 'background-size' => $settings->bg_size,
125
+ ),
126
+ ) );
127
+
128
+ // Background Photo - Medium
129
+ FLBuilderCSS::rule( array(
130
+ 'media' => 'medium',
131
+ 'selector' => ".fl-node-$id > .fl-row-content-wrap",
132
+ 'enabled' => 'photo' === $settings->bg_type,
133
+ 'props' => array(
134
+ 'background-image' => $settings->bg_image_medium_src,
135
+ 'background-repeat' => $settings->bg_repeat_medium,
136
+ 'background-position' => $settings->bg_position_medium,
137
+ 'background-attachment' => $settings->bg_attachment_medium,
138
+ 'background-size' => $settings->bg_size_medium,
139
+ ),
140
+ ) );
141
+
142
+ // Background Photo - Responsive
143
+ FLBuilderCSS::rule( array(
144
+ 'media' => 'responsive',
145
+ 'selector' => ".fl-node-$id > .fl-row-content-wrap",
146
+ 'enabled' => 'photo' === $settings->bg_type,
147
+ 'props' => array(
148
+ 'background-image' => $settings->bg_image_responsive_src,
149
+ 'background-repeat' => $settings->bg_repeat_responsive,
150
+ 'background-position' => $settings->bg_position_responsive,
151
+ 'background-attachment' => $settings->bg_attachment_responsive,
152
+ 'background-size' => $settings->bg_size_responsive,
153
+ ),
154
+ ) );
155
+
156
+ // Background Parallax
157
+ FLBuilderCSS::rule( array(
158
+ 'selector' => ".fl-node-$id > .fl-row-content-wrap",
159
+ 'enabled' => 'parallax' === $settings->bg_type,
160
+ 'props' => array(
161
+ 'background-repeat' => 'no-repeat',
162
+ 'background-position' => 'center center',
163
+ 'background-attachment' => 'fixed',
164
+ 'background-size' => 'cover',
165
+ ),
166
+ ) );
167
+
168
+ FLBuilderCSS::rule( array(
169
+ 'selector' => ".fl-builder-mobile .fl-node-$id > .fl-row-content-wrap",
170
+ 'enabled' => 'parallax' === $settings->bg_type,
171
+ 'props' => array(
172
+ 'background-image' => $settings->bg_parallax_image_src,
173
+ 'background-position' => 'center center',
174
+ 'background-attachment' => 'scroll',
175
+ ),
176
+ ) );
177
+
178
+ // Border
179
+ FLBuilderCSS::border_field_rule( array(
180
+ 'settings' => $settings,
181
+ 'setting_name' => 'border',
182
+ 'selector' => ".fl-node-$id > .fl-row-content-wrap",
183
+ ) );
184
+
185
+ // Min Height
186
+ FLBuilderCSS::responsive_rule( array(
187
+ 'settings' => $settings,
188
+ 'setting_name' => 'min_height',
189
+ 'selector' => ".fl-node-$id > .fl-row-content-wrap",
190
+ 'prop' => 'min-height',
191
+ 'enabled' => 'custom' === $settings->full_height,
192
+ ) );
193
+
194
+ // Row Resize - Max Width
195
+ if ( isset( $settings->max_content_width ) ) {
196
+ $has_max_width = ! FLBuilderCSS::is_empty( $settings->max_content_width );
197
+ $is_row_fixed = ( 'fixed' === $settings->width );
198
+ $is_row_content_fixed = ( 'fixed' === $settings->content_width );
199
+ $are_both_full_width = ( ! $is_row_fixed && ! $is_row_content_fixed );
200
+ $max_width_selector = '';
201
+
202
+ if ( $is_row_fixed ) {
203
+ $max_width_selector = ".fl-node-$id.fl-row-fixed-width, .fl-node-$id .fl-row-fixed-width";
204
+ } else {
205
+ $max_width_selector = ".fl-node-$id .fl-row-content";
206
+ }
207
+
208
+ FLBuilderCSS::rule( array(
209
+ 'selector' => $max_width_selector,
210
+ 'enabled' => $has_max_width && ! $are_both_full_width,
211
+ 'props' => array(
212
+ 'max-width' => array(
213
+ 'value' => $settings->max_content_width,
214
+ 'unit' => FLBuilderCSS::get_unit( 'max_content_width', $settings ),
215
+ ),
216
+ ),
217
+ ) );
218
+ }
219
+
220
+ FLBuilderArt::render_shape_layers_css( $row );
includes/row-settings.php CHANGED
@@ -1,11 +1,11 @@
1
  <?php
2
 
3
- $global_settings = FLBuilderModel::get_global_settings();
4
- $spacing_placeholders = FLBuilderModel::get_row_spacing_placeholders();
5
 
6
- FLBuilder::register_settings_form('row', array(
7
  'title' => __( 'Row Settings', 'fl-builder' ),
8
  'tabs' => array(
 
9
  'style' => array(
10
  'title' => __( 'Style', 'fl-builder' ),
11
  'sections' => array(
@@ -46,8 +46,20 @@ FLBuilder::register_settings_form('row', array(
46
  'max_content_width' => array(
47
  'type' => 'unit',
48
  'label' => __( 'Fixed Width', 'fl-builder' ),
49
- 'description' => 'px',
50
  'placeholder' => $global_settings->row_width,
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  'preview' => array(
52
  'type' => 'none',
53
  ),
@@ -59,20 +71,46 @@ FLBuilder::register_settings_form('row', array(
59
  'options' => array(
60
  'default' => __( 'Default', 'fl-builder' ),
61
  'full' => __( 'Full Height', 'fl-builder' ),
 
62
  ),
63
- 'help' => __( 'Full height rows fill the height of the browser window.', 'fl-builder' ),
64
  'toggle' => array(
65
  'full' => array(
66
  'fields' => array( 'content_alignment' ),
67
  ),
 
 
 
68
  ),
69
  'preview' => array(
70
  'type' => 'none',
71
  ),
72
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
73
  'content_alignment' => array(
74
  'type' => 'select',
75
- 'label' => __( 'Content Alignment', 'fl-builder' ),
76
  'default' => 'center',
77
  'options' => array(
78
  'top' => __( 'Top', 'fl-builder' ),
@@ -90,34 +128,42 @@ FLBuilder::register_settings_form('row', array(
90
  'fields' => array(
91
  'text_color' => array(
92
  'type' => 'color',
 
93
  'label' => __( 'Text Color', 'fl-builder' ),
94
  'show_reset' => true,
95
- 'preview' => array(
96
- 'type' => 'none',
 
97
  ),
98
  ),
99
  'link_color' => array(
100
  'type' => 'color',
 
101
  'label' => __( 'Link Color', 'fl-builder' ),
102
  'show_reset' => true,
103
- 'preview' => array(
104
- 'type' => 'none',
 
105
  ),
106
  ),
107
  'hover_color' => array(
108
  'type' => 'color',
 
109
  'label' => __( 'Link Hover Color', 'fl-builder' ),
110
  'show_reset' => true,
111
- 'preview' => array(
112
- 'type' => 'none',
 
113
  ),
114
  ),
115
  'heading_color' => array(
116
  'type' => 'color',
 
117
  'label' => __( 'Heading Color', 'fl-builder' ),
118
  'show_reset' => true,
119
- 'preview' => array(
120
- 'type' => 'none',
 
121
  ),
122
  ),
123
  ),
@@ -132,6 +178,7 @@ FLBuilder::register_settings_form('row', array(
132
  'options' => array(
133
  'none' => _x( 'None', 'Background type.', 'fl-builder' ),
134
  'color' => _x( 'Color', 'Background type.', 'fl-builder' ),
 
135
  'photo' => _x( 'Photo', 'Background type.', 'fl-builder' ),
136
  'video' => _x( 'Video', 'Background type.', 'fl-builder' ),
137
  'slideshow' => array(
@@ -147,6 +194,9 @@ FLBuilder::register_settings_form('row', array(
147
  'color' => array(
148
  'sections' => array( 'bg_color' ),
149
  ),
 
 
 
150
  'photo' => array(
151
  'sections' => array( 'bg_color', 'bg_photo', 'bg_overlay' ),
152
  ),
@@ -159,6 +209,9 @@ FLBuilder::register_settings_form('row', array(
159
  'parallax' => array(
160
  'sections' => array( 'bg_color','bg_parallax', 'bg_overlay' ),
161
  ),
 
 
 
162
  ),
163
  'preview' => array(
164
  'type' => 'none',
@@ -173,30 +226,36 @@ FLBuilder::register_settings_form('row', array(
173
  'type' => 'photo',
174
  'show_remove' => true,
175
  'label' => __( 'Photo', 'fl-builder' ),
 
 
176
  'preview' => array(
177
- 'type' => 'none',
 
 
178
  ),
179
- 'connections' => array( 'photo' ),
180
  ),
181
  'bg_repeat' => array(
182
  'type' => 'select',
183
  'label' => __( 'Repeat', 'fl-builder' ),
184
  'default' => 'none',
 
185
  'options' => array(
186
  'no-repeat' => _x( 'None', 'Background repeat.', 'fl-builder' ),
187
  'repeat' => _x( 'Tile', 'Background repeat.', 'fl-builder' ),
188
  'repeat-x' => _x( 'Horizontal', 'Background repeat.', 'fl-builder' ),
189
  'repeat-y' => _x( 'Vertical', 'Background repeat.', 'fl-builder' ),
190
  ),
191
- 'help' => __( 'Repeat applies to how the image should display in the background. Choosing none will display the image as uploaded. Tile will repeat the image as many times as needed to fill the background horizontally and vertically. You can also specify the image to only repeat horizontally or vertically.', 'fl-builder' ),
192
  'preview' => array(
193
- 'type' => 'none',
 
 
194
  ),
195
  ),
196
  'bg_position' => array(
197
  'type' => 'select',
198
  'label' => __( 'Position', 'fl-builder' ),
199
  'default' => 'center center',
 
200
  'options' => array(
201
  'left top' => __( 'Left Top', 'fl-builder' ),
202
  'left center' => __( 'Left Center', 'fl-builder' ),
@@ -208,36 +267,41 @@ FLBuilder::register_settings_form('row', array(
208
  'center center' => __( 'Center', 'fl-builder' ),
209
  'center bottom' => __( 'Center Bottom', 'fl-builder' ),
210
  ),
211
- 'help' => __( 'Position will tell the image where it should sit in the background.', 'fl-builder' ),
212
  'preview' => array(
213
- 'type' => 'none',
 
 
214
  ),
215
  ),
216
  'bg_attachment' => array(
217
  'type' => 'select',
218
  'label' => __( 'Attachment', 'fl-builder' ),
219
  'default' => 'scroll',
 
220
  'options' => array(
221
  'scroll' => __( 'Scroll', 'fl-builder' ),
222
  'fixed' => __( 'Fixed', 'fl-builder' ),
223
  ),
224
- 'help' => __( 'Attachment will specify how the image reacts when scrolling a page. When scrolling is selected, the image will scroll with page scrolling. This is the default setting. Fixed will allow the image to scroll within the background if fill is selected in the scale setting.', 'fl-builder' ),
225
  'preview' => array(
226
- 'type' => 'none',
 
 
227
  ),
228
  ),
229
  'bg_size' => array(
230
  'type' => 'select',
231
  'label' => __( 'Scale', 'fl-builder' ),
232
  'default' => 'cover',
 
233
  'options' => array(
234
  'auto' => _x( 'None', 'Background scale.', 'fl-builder' ),
235
  'contain' => __( 'Fit', 'fl-builder' ),
236
  'cover' => __( 'Fill', 'fl-builder' ),
237
  ),
238
- 'help' => __( 'Scale applies to how the image should display in the background. You can select either fill or fit to the background.', 'fl-builder' ),
239
  'preview' => array(
240
- 'type' => 'none',
 
 
241
  ),
242
  ),
243
  ),
@@ -271,6 +335,7 @@ FLBuilder::register_settings_form('row', array(
271
  ),
272
  'bg_video' => array(
273
  'type' => 'video',
 
274
  'label' => __( 'Video (MP4)', 'fl-builder' ),
275
  'help' => __( 'A video in the MP4 format to use as the background of this row. Most modern browsers support this format.', 'fl-builder' ),
276
  'preview' => array(
@@ -279,6 +344,7 @@ FLBuilder::register_settings_form('row', array(
279
  ),
280
  'bg_video_webm' => array(
281
  'type' => 'video',
 
282
  'label' => __( 'Video (WebM)', 'fl-builder' ),
283
  'help' => __( 'A video in the WebM format to use as the background of this row. This format is required to support browsers such as FireFox and Opera.', 'fl-builder' ),
284
  'preview' => array(
@@ -377,7 +443,7 @@ FLBuilder::register_settings_form('row', array(
377
  'connections' => array( 'custom_field' ),
378
  ),
379
  'ss_speed' => array(
380
- 'type' => 'text',
381
  'label' => __( 'Speed', 'fl-builder' ),
382
  'default' => '3',
383
  'size' => '5',
@@ -408,7 +474,7 @@ FLBuilder::register_settings_form('row', array(
408
  ),
409
  ),
410
  'ss_transitionDuration' => array(
411
- 'type' => 'text',
412
  'label' => __( 'Transition Speed', 'fl-builder' ),
413
  'default' => '1',
414
  'size' => '5',
@@ -458,123 +524,90 @@ FLBuilder::register_settings_form('row', array(
458
  ),
459
  ),
460
  ),
461
- 'bg_color' => array(
462
- 'title' => __( 'Background Color', 'fl-builder' ),
463
  'fields' => array(
464
- 'bg_color' => array(
465
- 'type' => 'color',
466
- 'label' => __( 'Color', 'fl-builder' ),
467
- 'show_reset' => true,
468
- 'preview' => array(
469
- 'type' => 'none',
 
 
 
 
 
 
 
 
 
 
470
  ),
471
- 'connections' => array( 'color' ),
472
- ),
473
- 'bg_opacity' => array(
474
- 'type' => 'text',
475
- 'label' => __( 'Opacity', 'fl-builder' ),
476
- 'default' => '100',
477
- 'description' => '%',
478
- 'maxlength' => '3',
479
- 'size' => '5',
480
  'preview' => array(
481
  'type' => 'none',
482
  ),
483
  ),
484
- ),
485
- ),
486
- 'bg_overlay' => array(
487
- 'title' => __( 'Background Overlay', 'fl-builder' ),
488
- 'fields' => array(
489
  'bg_overlay_color' => array(
490
  'type' => 'color',
 
491
  'label' => __( 'Overlay Color', 'fl-builder' ),
492
  'show_reset' => true,
 
493
  'preview' => array(
494
  'type' => 'none',
495
  ),
496
  ),
497
- 'bg_overlay_opacity' => array(
498
- 'type' => 'text',
499
- 'label' => __( 'Overlay Opacity', 'fl-builder' ),
500
- 'default' => '50',
501
- 'description' => '%',
502
- 'maxlength' => '3',
503
- 'size' => '5',
504
- 'preview' => array(
505
- 'type' => 'none',
506
  ),
507
  ),
508
  ),
509
  ),
510
- 'border' => array(
511
- 'title' => __( 'Border', 'fl-builder' ),
512
  'fields' => array(
513
- 'border_type' => array(
514
- 'type' => 'select',
515
- 'label' => __( 'Type', 'fl-builder' ),
516
- 'default' => '',
517
- 'help' => __( 'The type of border to use. Double borders must have a width of at least 3px to render properly.', 'fl-builder' ),
518
- 'options' => array(
519
- '' => _x( 'None', 'Border type.', 'fl-builder' ),
520
- 'solid' => _x( 'Solid', 'Border type.', 'fl-builder' ),
521
- 'dashed' => _x( 'Dashed', 'Border type.', 'fl-builder' ),
522
- 'dotted' => _x( 'Dotted', 'Border type.', 'fl-builder' ),
523
- 'double' => _x( 'Double', 'Border type.', 'fl-builder' ),
524
- ),
525
- 'toggle' => array(
526
- '' => array(
527
- 'fields' => array(),
528
- ),
529
- 'solid' => array(
530
- 'fields' => array( 'border_color', 'border_opacity', 'border' ),
531
- ),
532
- 'dashed' => array(
533
- 'fields' => array( 'border_color', 'border_opacity', 'border' ),
534
- ),
535
- 'dotted' => array(
536
- 'fields' => array( 'border_color', 'border_opacity', 'border' ),
537
- ),
538
- 'double' => array(
539
- 'fields' => array( 'border_color', 'border_opacity', 'border' ),
540
- ),
541
- ),
542
- 'preview' => array(
543
- 'type' => 'none',
544
- ),
545
- ),
546
- 'border_color' => array(
547
  'type' => 'color',
548
  'label' => __( 'Color', 'fl-builder' ),
549
  'show_reset' => true,
550
- 'preview' => array(
 
551
  'type' => 'none',
552
  ),
 
553
  ),
554
- 'border_opacity' => array(
555
- 'type' => 'text',
556
- 'label' => __( 'Opacity', 'fl-builder' ),
557
- 'default' => '100',
558
- 'description' => '%',
559
- 'maxlength' => '3',
560
- 'size' => '5',
561
- 'preview' => array(
562
- 'type' => 'none',
 
 
 
563
  ),
564
  ),
565
- 'border' => array(
566
- 'type' => 'dimension',
567
- 'label' => __( 'Border', 'fl-builder' ),
568
- 'description' => 'px',
569
- 'preview' => array(
570
- 'type' => 'none',
571
- ),
572
- 'responsive' => array(
573
- 'placeholder' => array(
574
- 'default' => '0',
575
- 'medium' => '',
576
- 'responsive' => '',
577
- ),
578
  ),
579
  ),
580
  ),
@@ -588,61 +621,82 @@ FLBuilder::register_settings_form('row', array(
588
  'title' => __( 'Spacing', 'fl-builder' ),
589
  'fields' => array(
590
  'margin' => array(
591
- 'type' => 'dimension',
592
- 'label' => __( 'Margins', 'fl-builder' ),
593
- 'description' => 'px',
594
- 'preview' => array(
595
- 'type' => 'none',
 
 
 
596
  ),
597
- 'responsive' => array(
 
 
 
 
 
 
 
 
 
 
598
  'placeholder' => array(
599
- 'default' => $spacing_placeholders['row_margins'],
600
- 'medium' => $spacing_placeholders['row_margins_medium'],
601
- 'responsive' => $spacing_placeholders['row_margins_responsive'],
602
  ),
603
  ),
604
  ),
605
  'padding' => array(
606
- 'type' => 'dimension',
607
- 'label' => __( 'Padding', 'fl-builder' ),
608
- 'description' => 'px',
609
- 'preview' => array(
610
- 'type' => 'none',
 
 
 
 
611
  ),
612
- 'responsive' => array(
 
 
 
 
 
 
 
 
 
 
613
  'placeholder' => array(
614
- 'default' => $spacing_placeholders['row_padding'],
615
- 'medium' => $spacing_placeholders['row_padding_medium'],
616
- 'responsive' => $spacing_placeholders['row_padding_tb_responsive'],
617
  ),
618
  ),
619
  ),
620
  ),
621
  ),
622
- 'responsive' => array(
623
- 'title' => __( 'Responsive Layout', 'fl-builder' ),
624
  'fields' => array(
625
  'responsive_display' => array(
626
  'type' => 'select',
627
- 'label' => __( 'Display', 'fl-builder' ),
628
  'options' => array(
629
- '' => __( 'Always', 'fl-builder' ),
630
  'desktop' => __( 'Large Devices Only', 'fl-builder' ),
631
  'desktop-medium' => __( 'Large &amp; Medium Devices Only', 'fl-builder' ),
632
  'medium' => __( 'Medium Devices Only', 'fl-builder' ),
633
  'medium-mobile' => __( 'Medium &amp; Small Devices Only', 'fl-builder' ),
634
  'mobile' => __( 'Small Devices Only', 'fl-builder' ),
635
  ),
636
- 'help' => __( 'Choose whether to show or hide this row at different device sizes.', 'fl-builder' ),
637
  'preview' => array(
638
  'type' => 'none',
639
  ),
640
  ),
641
- ),
642
- ),
643
- 'visibility' => array(
644
- 'title' => __( 'Visibility', 'fl-builder' ),
645
- 'fields' => array(
646
  'visibility_display' => array(
647
  'type' => 'select',
648
  'label' => __( 'Display', 'fl-builder' ),
@@ -671,9 +725,39 @@ FLBuilder::register_settings_form('row', array(
671
  ),
672
  ),
673
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
674
  'css_selectors' => array(
675
  'title' => __( 'HTML Element', 'fl-builder' ),
676
  'fields' => array(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
677
  'id' => array(
678
  'type' => 'text',
679
  'label' => __( 'ID', 'fl-builder' ),
@@ -695,4 +779,12 @@ FLBuilder::register_settings_form('row', array(
695
  ),
696
  ),
697
  ),
698
- ));
 
 
 
 
 
 
 
 
1
  <?php
2
 
3
+ $global_settings = FLBuilderModel::get_global_settings();
 
4
 
5
+ $row_settings = array(
6
  'title' => __( 'Row Settings', 'fl-builder' ),
7
  'tabs' => array(
8
+
9
  'style' => array(
10
  'title' => __( 'Style', 'fl-builder' ),
11
  'sections' => array(
46
  'max_content_width' => array(
47
  'type' => 'unit',
48
  'label' => __( 'Fixed Width', 'fl-builder' ),
 
49
  'placeholder' => $global_settings->row_width,
50
+ 'default_unit' => $global_settings->row_width_unit,
51
+ 'units' => array(
52
+ 'px',
53
+ 'vw',
54
+ '%',
55
+ ),
56
+ 'slider' => array(
57
+ 'px' => array(
58
+ 'min' => 0,
59
+ 'max' => $global_settings->row_width,
60
+ 'step' => 10,
61
+ ),
62
+ ),
63
  'preview' => array(
64
  'type' => 'none',
65
  ),
71
  'options' => array(
72
  'default' => __( 'Default', 'fl-builder' ),
73
  'full' => __( 'Full Height', 'fl-builder' ),
74
+ 'custom' => __( 'Minimum Height', 'fl-builder' ),
75
  ),
76
+ 'help' => __( 'Full height rows fill the height of the browser window. Minimum height rows are no taller than the value entered.', 'fl-builder' ),
77
  'toggle' => array(
78
  'full' => array(
79
  'fields' => array( 'content_alignment' ),
80
  ),
81
+ 'custom' => array(
82
+ 'fields' => array( 'content_alignment', 'min_height' ),
83
+ ),
84
  ),
85
  'preview' => array(
86
  'type' => 'none',
87
  ),
88
  ),
89
+ 'min_height' => array(
90
+ 'type' => 'unit',
91
+ 'label' => __( 'Minimum Height', 'fl-builder' ),
92
+ 'responsive' => true,
93
+ 'units' => array(
94
+ 'px',
95
+ 'vw',
96
+ 'vh',
97
+ ),
98
+ 'slider' => array(
99
+ 'px' => array(
100
+ 'min' => 0,
101
+ 'max' => 1000,
102
+ 'step' => 10,
103
+ ),
104
+ ),
105
+ 'preview' => array(
106
+ 'type' => 'css',
107
+ 'selector' => '.fl-row-content-wrap',
108
+ 'property' => 'min-height',
109
+ ),
110
+ ),
111
  'content_alignment' => array(
112
  'type' => 'select',
113
+ 'label' => __( 'Vertical Alignment', 'fl-builder' ),
114
  'default' => 'center',
115
  'options' => array(
116
  'top' => __( 'Top', 'fl-builder' ),
128
  'fields' => array(
129
  'text_color' => array(
130
  'type' => 'color',
131
+ 'connections' => array( 'color' ),
132
  'label' => __( 'Text Color', 'fl-builder' ),
133
  'show_reset' => true,
134
+ 'show_alpha' => true,
135
+ 'preview' => array(
136
+ 'type' => 'none',
137
  ),
138
  ),
139
  'link_color' => array(
140
  'type' => 'color',
141
+ 'connections' => array( 'color' ),
142
  'label' => __( 'Link Color', 'fl-builder' ),
143
  'show_reset' => true,
144
+ 'show_alpha' => true,
145
+ 'preview' => array(
146
+ 'type' => 'none',
147
  ),
148
  ),
149
  'hover_color' => array(
150
  'type' => 'color',
151
+ 'connections' => array( 'color' ),
152
  'label' => __( 'Link Hover Color', 'fl-builder' ),
153
  'show_reset' => true,
154
+ 'show_alpha' => true,
155
+ 'preview' => array(
156
+ 'type' => 'none',
157
  ),
158
  ),
159
  'heading_color' => array(
160
  'type' => 'color',
161
+ 'connections' => array( 'color' ),
162
  'label' => __( 'Heading Color', 'fl-builder' ),
163
  'show_reset' => true,
164
+ 'show_alpha' => true,
165
+ 'preview' => array(
166
+ 'type' => 'none',
167
  ),
168
  ),
169
  ),
178
  'options' => array(
179
  'none' => _x( 'None', 'Background type.', 'fl-builder' ),
180
  'color' => _x( 'Color', 'Background type.', 'fl-builder' ),
181
+ 'gradient' => _x( 'Gradient', 'Background type.', 'fl-builder' ),
182
  'photo' => _x( 'Photo', 'Background type.', 'fl-builder' ),
183
  'video' => _x( 'Video', 'Background type.', 'fl-builder' ),
184
  'slideshow' => array(
194
  'color' => array(
195
  'sections' => array( 'bg_color' ),
196
  ),
197
+ 'gradient' => array(
198
+ 'sections' => array( 'bg_gradient' ),
199
+ ),
200
  'photo' => array(
201
  'sections' => array( 'bg_color', 'bg_photo', 'bg_overlay' ),
202
  ),
209
  'parallax' => array(
210
  'sections' => array( 'bg_color','bg_parallax', 'bg_overlay' ),
211
  ),
212
+ 'pattern' => array(
213
+ 'sections' => array( 'bg_pattern', 'bg_color', 'bg_overlay' ),
214
+ ),
215
  ),
216
  'preview' => array(
217
  'type' => 'none',
226
  'type' => 'photo',
227
  'show_remove' => true,
228
  'label' => __( 'Photo', 'fl-builder' ),
229
+ 'responsive' => true,
230
+ 'connections' => array( 'photo' ),
231
  'preview' => array(
232
+ 'type' => 'css',
233
+ 'selector' => '> .fl-row-content-wrap',
234
+ 'property' => 'background-image',
235
  ),
 
236
  ),
237
  'bg_repeat' => array(
238
  'type' => 'select',
239
  'label' => __( 'Repeat', 'fl-builder' ),
240
  'default' => 'none',
241
+ 'responsive' => true,
242
  'options' => array(
243
  'no-repeat' => _x( 'None', 'Background repeat.', 'fl-builder' ),
244
  'repeat' => _x( 'Tile', 'Background repeat.', 'fl-builder' ),
245
  'repeat-x' => _x( 'Horizontal', 'Background repeat.', 'fl-builder' ),
246
  'repeat-y' => _x( 'Vertical', 'Background repeat.', 'fl-builder' ),
247
  ),
 
248
  'preview' => array(
249
+ 'type' => 'css',
250
+ 'selector' => '> .fl-row-content-wrap',
251
+ 'property' => 'background-repeat',
252
  ),
253
  ),
254
  'bg_position' => array(
255
  'type' => 'select',
256
  'label' => __( 'Position', 'fl-builder' ),
257
  'default' => 'center center',
258
+ 'responsive' => true,
259
  'options' => array(
260
  'left top' => __( 'Left Top', 'fl-builder' ),
261
  'left center' => __( 'Left Center', 'fl-builder' ),
267
  'center center' => __( 'Center', 'fl-builder' ),
268
  'center bottom' => __( 'Center Bottom', 'fl-builder' ),
269
  ),
 
270
  'preview' => array(
271
+ 'type' => 'css',
272
+ 'selector' => '> .fl-row-content-wrap',
273
+ 'property' => 'background-position',
274
  ),
275
  ),
276
  'bg_attachment' => array(
277
  'type' => 'select',
278
  'label' => __( 'Attachment', 'fl-builder' ),
279
  'default' => 'scroll',
280
+ 'responsive' => true,
281
  'options' => array(
282
  'scroll' => __( 'Scroll', 'fl-builder' ),
283
  'fixed' => __( 'Fixed', 'fl-builder' ),
284
  ),
 
285
  'preview' => array(
286
+ 'type' => 'css',
287
+ 'selector' => '> .fl-row-content-wrap',
288
+ 'property' => 'background-attachment',
289
  ),
290
  ),
291
  'bg_size' => array(
292
  'type' => 'select',
293
  'label' => __( 'Scale', 'fl-builder' ),
294
  'default' => 'cover',
295
+ 'responsive' => true,
296
  'options' => array(
297
  'auto' => _x( 'None', 'Background scale.', 'fl-builder' ),
298
  'contain' => __( 'Fit', 'fl-builder' ),
299
  'cover' => __( 'Fill', 'fl-builder' ),
300
  ),
 
301
  'preview' => array(
302
+ 'type' => 'css',
303
+ 'selector' => '> .fl-row-content-wrap',
304
+ 'property' => 'background-size',
305
  ),
306
  ),
307
  ),
335
  ),
336
  'bg_video' => array(
337
  'type' => 'video',
338
+ 'show_remove' => true,
339
  'label' => __( 'Video (MP4)', 'fl-builder' ),
340
  'help' => __( 'A video in the MP4 format to use as the background of this row. Most modern browsers support this format.', 'fl-builder' ),
341
  'preview' => array(
344
  ),
345
  'bg_video_webm' => array(
346
  'type' => 'video',
347
+ 'show_remove' => true,
348
  'label' => __( 'Video (WebM)', 'fl-builder' ),
349
  'help' => __( 'A video in the WebM format to use as the background of this row. This format is required to support browsers such as FireFox and Opera.', 'fl-builder' ),
350
  'preview' => array(
443
  'connections' => array( 'custom_field' ),
444
  ),
445
  'ss_speed' => array(
446
+ 'type' => 'unit',
447
  'label' => __( 'Speed', 'fl-builder' ),
448
  'default' => '3',
449
  'size' => '5',
474
  ),
475
  ),
476
  'ss_transitionDuration' => array(
477
+ 'type' => 'unit',
478
  'label' => __( 'Transition Speed', 'fl-builder' ),
479
  'default' => '1',
480
  'size' => '5',
524
  ),
525
  ),
526
  ),
527
+ 'bg_overlay' => array(
528
+ 'title' => __( 'Background Overlay', 'fl-builder' ),
529
  'fields' => array(
530
+ 'bg_overlay_type' => array(
531
+ 'type' => 'select',
532
+ 'label' => __( 'Overlay Type', 'fl-builder' ),
533
+ 'default' => 'color',
534
+ 'options' => array(
535
+ 'none' => __( 'None', 'fl-builder' ),
536
+ 'color' => __( 'Color', 'fl-builder' ),
537
+ 'gradient' => __( 'Gradient', 'fl-builder' ),
538
+ ),
539
+ 'toggle' => array(
540
+ 'color' => array(
541
+ 'fields' => array( 'bg_overlay_color' ),
542
+ ),
543
+ 'gradient' => array(
544
+ 'fields' => array( 'bg_overlay_gradient' ),
545
+ ),
546
  ),
 
 
 
 
 
 
 
 
 
547
  'preview' => array(
548
  'type' => 'none',
549
  ),
550
  ),
 
 
 
 
 
551
  'bg_overlay_color' => array(
552
  'type' => 'color',
553
+ 'connections' => array( 'color' ),
554
  'label' => __( 'Overlay Color', 'fl-builder' ),
555
  'show_reset' => true,
556
+ 'show_alpha' => true,
557
  'preview' => array(
558
  'type' => 'none',
559
  ),
560
  ),
561
+ 'bg_overlay_gradient' => array(
562
+ 'type' => 'gradient',
563
+ 'label' => __( 'Overlay Gradient', 'fl-builder' ),
564
+ 'preview' => array(
565
+ 'type' => 'css',
566
+ 'selector' => '> .fl-row-content-wrap:after',
567
+ 'property' => 'background-image',
 
 
568
  ),
569
  ),
570
  ),
571
  ),
572
+ 'bg_color' => array(
573
+ 'title' => __( 'Background Color', 'fl-builder' ),
574
  'fields' => array(
575
+ 'bg_color' => array(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
576
  'type' => 'color',
577
  'label' => __( 'Color', 'fl-builder' ),
578
  'show_reset' => true,
579
+ 'show_alpha' => true,
580
+ 'preview' => array(
581
  'type' => 'none',
582
  ),
583
+ 'connections' => array( 'color' ),
584
  ),
585
+ ),
586
+ ),
587
+ 'bg_gradient' => array(
588
+ 'title' => __( 'Background Gradient', 'fl-builder' ),
589
+ 'fields' => array(
590
+ 'bg_gradient' => array(
591
+ 'type' => 'gradient',
592
+ 'label' => __( 'Gradient', 'fl-builder' ),
593
+ 'preview' => array(
594
+ 'type' => 'css',
595
+ 'selector' => '> .fl-row-content-wrap',
596
+ 'property' => 'background-image',
597
  ),
598
  ),
599
+ ),
600
+ ),
601
+ 'border' => array(
602
+ 'title' => __( 'Border', 'fl-builder' ),
603
+ 'fields' => array(
604
+ 'border' => array(
605
+ 'type' => 'border',
606
+ 'label' => __( 'Border', 'fl-builder' ),
607
+ 'responsive' => true,
608
+ 'preview' => array(
609
+ 'type' => 'css',
610
+ 'selector' => '.fl-row-content-wrap',
 
611
  ),
612
  ),
613
  ),
621
  'title' => __( 'Spacing', 'fl-builder' ),
622
  'fields' => array(
623
  'margin' => array(
624
+ 'type' => 'dimension',
625
+ 'label' => __( 'Margins', 'fl-builder' ),
626
+ 'slider' => true,
627
+ 'units' => array(
628
+ 'px',
629
+ '%',
630
+ 'vw',
631
+ 'vh',
632
  ),
633
+ 'preview' => array(
634
+ 'type' => 'css',
635
+ 'selector' => '.fl-row-content-wrap',
636
+ 'property' => 'margin',
637
+ ),
638
+ 'responsive' => array(
639
+ 'default_unit' => array(
640
+ 'default' => $global_settings->row_margins_unit,
641
+ 'medium' => $global_settings->row_margins_medium_unit,
642
+ 'responsive' => $global_settings->row_margins_responsive_unit,
643
+ ),
644
  'placeholder' => array(
645
+ 'default' => empty( $global_settings->row_margins ) ? '0' : $global_settings->row_margins,
646
+ 'medium' => empty( $global_settings->row_margins_medium ) ? '0' : $global_settings->row_margins_medium,
647
+ 'responsive' => empty( $global_settings->row_margins_responsive ) ? '0' : $global_settings->row_margins_responsive,
648
  ),
649
  ),
650
  ),
651
  'padding' => array(
652
+ 'type' => 'dimension',
653
+ 'label' => __( 'Padding', 'fl-builder' ),
654
+ 'slider' => true,
655
+ 'units' => array(
656
+ 'px',
657
+ 'em',
658
+ '%',
659
+ 'vw',
660
+ 'vh',
661
  ),
662
+ 'preview' => array(
663
+ 'type' => 'css',
664
+ 'selector' => '.fl-row-content-wrap',
665
+ 'property' => 'padding',
666
+ ),
667
+ 'responsive' => array(
668
+ 'default_unit' => array(
669
+ 'default' => $global_settings->row_padding_unit,
670
+ 'medium' => $global_settings->row_padding_medium_unit,
671
+ 'responsive' => $global_settings->row_padding_responsive_unit,
672
+ ),
673
  'placeholder' => array(
674
+ 'default' => empty( $global_settings->row_padding ) ? '0' : $global_settings->row_padding,
675
+ 'medium' => empty( $global_settings->row_padding_medium ) ? '0' : $global_settings->row_padding_medium,
676
+ 'responsive' => empty( $global_settings->row_padding_responsive ) ? '0' : $global_settings->row_padding_responsive,
677
  ),
678
  ),
679
  ),
680
  ),
681
  ),
682
+ 'visibility' => array(
683
+ 'title' => __( 'Visibility', 'fl-builder' ),
684
  'fields' => array(
685
  'responsive_display' => array(
686
  'type' => 'select',
687
+ 'label' => __( 'Breakpoint', 'fl-builder' ),
688
  'options' => array(
689
+ '' => __( 'All', 'fl-builder' ),
690
  'desktop' => __( 'Large Devices Only', 'fl-builder' ),
691
  'desktop-medium' => __( 'Large &amp; Medium Devices Only', 'fl-builder' ),
692
  'medium' => __( 'Medium Devices Only', 'fl-builder' ),
693
  'medium-mobile' => __( 'Medium &amp; Small Devices Only', 'fl-builder' ),
694
  'mobile' => __( 'Small Devices Only', 'fl-builder' ),
695
  ),
 
696
  'preview' => array(
697
  'type' => 'none',
698
  ),
699
  ),
 
 
 
 
 
700
  'visibility_display' => array(
701
  'type' => 'select',
702
  'label' => __( 'Display', 'fl-builder' ),
725
  ),
726
  ),
727
  ),
728
+ 'animation' => array(
729
+ 'title' => __( 'Animation', 'fl-builder' ),
730
+ 'fields' => array(
731
+ 'animation' => array(
732
+ 'type' => 'animation',
733
+ 'label' => __( 'Animation', 'fl-builder' ),
734
+ 'preview' => array(
735
+ 'type' => 'animation',
736
+ 'selector' => '{node}',
737
+ ),
738
+ ),
739
+ ),
740
+ ),
741
  'css_selectors' => array(
742
  'title' => __( 'HTML Element', 'fl-builder' ),
743
  'fields' => array(
744
+ 'container_element' => array(
745
+ 'type' => 'select',
746
+ 'label' => __( 'Container Element', 'fl-builder' ),
747
+ 'default' => apply_filters( 'fl_builder_row_container_element_default', 'div' ),
748
+ 'options' => apply_filters( 'fl_builder_node_container_element_options', array(
749
+ 'div' => '&lt;div&gt;',
750
+ 'section' => '&lt;section&gt;',
751
+ 'article' => '&lt;article&gt;',
752
+ 'aside' => '&lt;aside&gt;',
753
+ 'header' => '&lt;header&gt;',
754
+ 'footer' => '&lt;footer&gt;',
755
+ ) ),
756
+ 'help' => __( 'Optional. Choose an appropriate HTML5 content sectioning element to use for this row to improve accessibility and machine-readability.', 'fl-builder' ),
757
+ 'preview' => array(
758
+ 'type' => 'none',
759
+ ),
760
+ ),
761
  'id' => array(
762
  'type' => 'text',
763
  'label' => __( 'ID', 'fl-builder' ),
779
  ),
780
  ),
781
  ),
782
+ );
783
+
784
+ // Merge Shape Layer Sections
785
+ $style_sections = $row_settings['tabs']['style']['sections'];
786
+ $shape_sections = FLBuilderArt::get_shape_settings_sections();
787
+ $row_settings['tabs']['style']['sections'] = array_merge( $style_sections, $shape_sections );
788
+
789
+ // Register
790
+ FLBuilder::register_settings_form( 'row', $row_settings );
includes/row.php CHANGED
@@ -1,14 +1,15 @@
1
- <div<?php FLBuilder::render_row_attributes( $row ); ?>>
 
2
  <div class="fl-row-content-wrap">
3
  <?php FLBuilder::render_row_bg( $row ); ?>
 
4
  <div class="<?php FLBuilder::render_row_content_class( $row ); ?>">
5
  <?php
6
  // $groups received as a magic variable from template loading.
7
  foreach ( $groups as $group ) {
8
  FLBuilder::render_column_group( $group );
9
  }
10
-
11
  ?>
12
  </div>
13
  </div>
14
- </div>
1
+ <?php $container_element = ( ! empty( $row->settings->container_element ) ? $row->settings->container_element : 'div' ); ?>
2
+ <<?php echo $container_element; ?><?php FLBuilder::render_row_attributes( $row ); ?>>
3
  <div class="fl-row-content-wrap">
4
  <?php FLBuilder::render_row_bg( $row ); ?>
5
+ <?php do_action( 'fl_builder_render_node_layers', $row ) ?>
6
  <div class="<?php FLBuilder::render_row_content_class( $row ); ?>">
7
  <?php
8
  // $groups received as a magic variable from template loading.
9
  foreach ( $groups as $group ) {
10
  FLBuilder::render_column_group( $group );
11
  }
 
12
  ?>
13
  </div>
14
  </div>
15
+ </<?php echo $container_element; ?>>
includes/shape-layer.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="fl-builder-layer fl-builder-shape-layer fl-builder-<?php echo $position ?>-edge-layer">
2
+ <svg class="<?php echo $svg_class?>" viewBox="<?php echo $view_box ?>" preserveAspectRatio="<?php echo $preserve_aspect_ratio ?>">
3
+
4
+ <defs>
5
+ <?php
6
+ $is_in_builder = FLBuilderModel::is_builder_active();
7
+ if ( $is_in_builder || 'gradient' === $settings->{ $prefix . 'fill_style' } ) {
8
+
9
+ $linear_gradient_id = "fl-row-$id-$prefix-linear-gradient";
10
+ $radial_gradient_id = "fl-row-$id-$prefix-radial-gradient";
11
+ $gradient_settings = $settings->{ $prefix . 'fill_gradient' };
12
+ $colors = $gradient_settings['colors'];
13
+ $stops = $gradient_settings['stops'];
14
+
15
+ // Radial Gradient
16
+ $parts = explode( ' ', $gradient_settings['position'] );
17
+ $cx = FLBuilderArt::get_int_for_position_name( $parts[0] );
18
+ $cy = FLBuilderArt::get_int_for_position_name( $parts[1] );
19
+ $r = ( .5 === $cx && .5 === $cy ) ? .5 : 1 ;
20
+ ?>
21
+ <linearGradient id="<?php echo $linear_gradient_id ?>" gradientUnits="objectBoundingBox" gradientTransform="rotate(<?php echo $gradient_settings['angle'] ?> .5 .5)">
22
+ <?php foreach ( $colors as $i => $color ) {
23
+ $rgba = FLBuilderColor::rgba_values_for_color( $color );
24
+ ?>
25
+ <stop offset="<?php echo $stops[ $i ] . '%' ?>" stop-color="<?php echo $rgba['rgb'] ?>" stop-opacity="<?php echo $rgba['a'] ?>" />
26
+ <?php } ?>
27
+ </linearGradient>
28
+ <radialGradient id="<?php echo $radial_gradient_id ?>" cx="<?php echo $cx; ?>" cy="<?php echo $cy; ?>" r="<?php echo $r; ?>">
29
+ <?php foreach ( $colors as $i => $color ) {
30
+ $rgba = FLBuilderColor::rgba_values_for_color( $color );
31
+ ?>
32
+ <stop offset="<?php echo $stops[ $i ] . '%' ?>" stop-color="<?php echo $rgba['rgb'] ?>" stop-opacity="<?php echo $rgba['a'] ?>" />
33
+ <?php } ?>
34
+ </radialGradient>
35
+ <?php } // End if ?>
36
+ </defs>
37
+
38
+ <g class="fl-shape-content">
39
+ <?php echo $content ?>
40
+ </g>
41
+ </svg>
42
+ </div>
includes/shapes/circle.svg.php ADDED
@@ -0,0 +1 @@
 
1
+ <circle class="fl-shape" cx="50" cy="50" r="50"></circle>
includes/shapes/concave.svg.php ADDED
@@ -0,0 +1 @@
 
1
+ <path class="fl-shape" d="M0,0 L800,0 L800,50 C666.666667,22.5877193 533.333333,8.88157895 400,8.88157895 C266.666667,8.88157895 133.333333,22.5877193 0,50 L0,0 Z"></path>
includes/shapes/dot-cluster.svg.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <g class="fl-shape">
2
+ <circle id="Oval-4" cx="118.5" cy="112.5" r="84.5"></circle>
3
+ <circle id="Oval-4-Copy" cx="269" cy="173" r="53"></circle>
4
+ <circle id="Oval-4-Copy-5" cx="508" cy="94" r="53"></circle>
5
+ <circle id="Oval-4-Copy-2" cx="371" cy="60" r="60"></circle>
6
+ <circle id="Oval-4-Copy-6" cx="654" cy="137" r="60"></circle>
7
+ <circle id="Oval-4-Copy-7" cx="704.5" cy="48.5" r="19.5"></circle>
8
+ <circle id="Oval-4-Copy-17" cx="775" cy="38" r="9"></circle>
9
+ <circle id="Oval-4-Copy-8" cx="537.5" cy="184.5" r="26.5"></circle>
10
+ <circle id="Oval-4-Copy-9" cx="278" cy="84" r="16"></circle>
11
+ <circle id="Oval-4-Copy-10" cx="216.5" cy="35.5" r="24.5"></circle>
12
+ <circle id="Oval-4-Copy-11" cx="177.5" cy="225.5" r="19.5"></circle>
13
+ <circle id="Oval-4-Copy-12" cx="12.5" cy="185.5" r="12.5"></circle>
14
+ <circle id="Oval-4-Copy-13" cx="46.5" cy="28.5" r="12.5"></circle>
15
+ <circle id="Oval-4-Copy-19" cx="542.5" cy="238.5" r="12.5"></circle>
16
+ <circle id="Oval-4-Copy-14" cx="467.5" cy="165.5" r="12.5"></circle>
17
+ <circle id="Oval-4-Copy-15" cx="787.5" cy="172.5" r="12.5"></circle>
18
+ <circle id="Oval-4-Copy-16" cx="753" cy="113" r="22"></circle>
19
+ <circle id="Oval-4-Copy-3" cx="370.5" cy="177.5" r="30.5"></circle>
20
+ <circle id="Oval-4-Copy-18" cx="455" cy="247" r="41"></circle>
21
+ <circle id="Oval-4-Copy-20" cx="357" cy="290" r="25"></circle>
22
+ <circle id="Oval-4-Copy-21" cx="278" cy="253" r="8"></circle>
23
+ <circle id="Oval-4-Copy-22" cx="476" cy="20" r="8"></circle>
24
+ <circle id="Oval-4-Copy-23" cx="573" cy="138" r="8"></circle>
25
+ <circle id="Oval-4-Copy-24" cx="233" cy="100" r="8"></circle>
26
+ <circle id="Oval-4-Copy-25" cx="23" cy="63" r="5"></circle>
27
+ <circle id="Oval-4-Copy-4" cx="601.5" cy="46.5" r="30.5"></circle>
28
+ </g>
includes/shapes/edge-slant.svg.php ADDED
@@ -0,0 +1 @@
 
1
+ <polygon class="fl-shape" points="0,34 422,0 0,0"></polygon>
includes/shapes/midpoint.svg.php ADDED
@@ -0,0 +1 @@
 
1
+ <polygon class="fl-shape" points="0,0 800,0 800,50 400,0 0,50"></polygon>
includes/shapes/rect.svg.php ADDED
@@ -0,0 +1 @@
 
1
+ <rect class="fl-shape" x="0" y="0" width="800" height="450"></rect>
includes/shapes/star.svg.php ADDED
@@ -0,0 +1 @@
 
1
+ <polygon class="fl-shape" points="24 37.5 9.30536869 45.2254249 12.1117935 28.8627124 0.223587093 17.2745751 16.6526843 14.8872876 24 0 31.3473157 14.8872876 47.7764129 17.2745751 35.8882065 28.8627124 38.6946313 45.2254249"></polygon>
includes/shapes/topography.svg.php ADDED
@@ -0,0 +1 @@
 
1
+ <path class="fl-shape" d="M600,326.1 L600,324.93 C593.5,328.76 586.94,332.57 585.32,333.57 C574.72,340.13 566.75,346.13 560.64,352.66 C555.06,358.61 548.2,362.72 538.22,366.81 C536.77,367.41 535.26,368.01 533.39,368.71 L528.64,370.53 C518.86,374.28 513.84,376.8 509.66,380.63 C505.43,384.51 500.01,387.23 492.89,389.47 C490.94,390.07 488.9,390.64 486.42,391.27 L480.28,392.8 C474.99,394.15 471.98,395.17 469.74,396.58 C466.66,398.5 463.11,399.84 457,401.61 C455.396306,402.073803 453.789605,402.527146 452.18,402.97 C450.14,403.55 448.58,404.01 447.01,404.49 C443.206288,405.636812 439.467479,406.988792 435.81,408.54 C433.11,409.69 430.31,412.47 427.03,416.94 C424.872986,419.933763 422.821723,423.002319 420.88,426.14 C415.13,435.21 413.3,437.88 410.64,440.65 C409.194327,442.14933 407.658114,443.558639 406.04,444.87 C403.71,446.77 395.65,452.41 394.23,453.61 C392.754365,454.747871 391.508857,456.156279 390.56,457.76 C389.32,460.06 388.66,462.33 387.78,466.63 C385.61,477.24 384.26,481.44 379.58,488.73 C375.51,495.06 372.78,498.61 369.75,501.72 C369.28,502.2 368.8,502.68 368.25,503.2 L364.5,506.76 C362.83,508.36 361.32,509.88 359.64,511.66 C355.065721,516.456881 351.67859,522.258499 349.75,528.6 C347.25,536.73 347.03,544.07 347.99,555.82 C348.46,561.64 348.5,562.18 348.5,564 C348.5,574.51 348.62,581.53 349.13,589.78 C349.37,593.83 349.69,597.58 350.1,601 L351,601 C349.87,591.42 349.5,579.17 349.5,564 C349.5,562.14 349.46,561.6 348.98,555.74 C348.04,544.11 348.26,536.87 350.71,528.89 C352.589817,522.695315 355.894794,517.027193 360.36,512.34 C362.03,510.58 363.54,509.07 365.19,507.49 C365.82,506.89 368.32,504.53 368.94,503.92 C369.454095,503.427584 369.960818,502.927528 370.46,502.42 C373.55,499.26 376.32,495.66 380.42,489.27 C385.19,481.85 386.57,477.56 388.76,466.83 C389.62,462.62 390.26,460.43 391.44,458.23 C392.12,456.98 393.23,455.75 394.87,454.37 C396.25,453.22 404.3,447.57 406.67,445.65 C408.38,444.25 409.93,442.84 411.37,441.35 C414.09,438.5 415.93,435.81 421.73,426.68 C423.65579,423.559658 425.690373,420.507784 427.83,417.53 C431.03,413.2 433.73,410.52 436.2,409.46 C439.7,407.96 443.26,406.69 447.3,405.44 C449.820745,404.663858 452.354441,403.93042 454.9,403.24 L457.28,402.57 C463.47,400.78 467.09,399.41 470.26,397.42 C472.4,396.09 475.34,395.09 480.53,393.77 L486.67,392.24 C489.17,391.61 491.22,391.04 493.19,390.42 C500.43,388.15 505.98,385.36 510.34,381.37 C514.39,377.65 519.34,375.17 529,371.47 L533.75,369.65 C535.62,368.93 537.14,368.34 538.6,367.74 C548.7,363.59 555.67,359.42 561.36,353.34 C567.41,346.89 575.31,340.94 585.85,334.42 C587.41,333.46 593.67,329.82 600,326.09 L600,261.51 C596,269.66 591.48,276.36 587.3,279.41 C584.79,281.23 581.92,283.43 578.26,286.33 C576.177118,287.98221 574.100437,289.642221 572.03,291.31 L570.76,292.33 C569.138424,293.632192 567.515089,294.932194 565.89,296.23 C558.34,302.23 552.99,306.28 548.28,309.42 C545.18,311.48 544.42,312.2 540.22,316.55 C534.38,322.62 528.5,325.17 511.07,327.5 C499.77,329 491.03,332.41 480.32,338.57 C478.67,339.51 473.05,342.84 473.35,342.67 C470.65,344.25 468.66,345.36 466.71,346.33 C461.08,349.13 456.24,350.5 451,350.5 C433.87,350.5 409.56,362.01 399.37,373.33 C387.32,386.73 367.95,401.03 354.12,404.49 C346.72,406.34 342.27,411.54 340.08,419.18 C338.82,423.58 338.5,427.46 338.5,433 C338.5,433.82 338.51,433.98 338.74,436.63 C339.19,441.81 339.09,445.35 337.97,449.89 C336.44,456.09 333.08,462.49 327.38,469.32 C313.51,485.97 304.5,515.9 304.5,541 C304.5,543.39 304.52,545.26 304.56,549.75 C304.68,560.55 304.66,565.55 304.34,571.7 C303.78,582.88 302.25,592.43 299.34,601 L298.29,601 C301.23,592.44 302.78,582.88 303.34,571.65 C303.65,565.52 303.68,560.55 303.56,549.75 C303.52,545.27 303.5,543.39 303.5,541 C303.5,515.68 312.57,485.53 326.62,468.68 C332.22,461.96 335.5,455.69 337,449.65 C338.09,445.25 338.18,441.8 337.74,436.72 C337.51,434.02 337.5,433.86 337.5,433 C337.5,427.38 337.82,423.43 339.12,418.9 C341.4,410.95 346.09,405.46 353.88,403.51 C367.48,400.11 386.7,385.92 398.63,372.67 C409,361.14 433.58,349.5 451,349.5 C456.07,349.5 460.77,348.17 466.26,345.43 C468.19,344.47 470.16,343.38 472.84,341.81 C472.54,341.99 478.17,338.65 479.82,337.7 C490.64,331.49 499.48,328.03 510.93,326.5 C528.16,324.2 533.83,321.75 539.5,315.86 C543.75,311.45 544.54,310.7 547.72,308.58 C552.4,305.47 557.73,301.44 565.27,295.44 C566.893622,294.147865 568.513628,292.851193 570.13,291.55 L571.41,290.53 C573.485248,288.868226 575.561916,287.208226 577.64,285.55 C581.31,282.65 584.19,280.43 586.71,278.6 C591.08,275.41 595.87,268.04 600,259.2 L600,326.1 Z M600,209.87 C599.38,209.88 598.73,209.93 598.05,210 C591.92,210.63 584.22,213.45 576.22,217.45 C572.58,219.27 567.76,220.12 562.05,220.16 C557.35,220.2 552.33,219.69 547.32,218.83 C545.62,218.53 544.06,218.22 542.65,217.9 C541.478464,217.642673 540.293206,217.452364 539.1,217.33 C533.556912,216.86726 528.000992,216.57379 522.44,216.45 C512.02,216.29 505.24,217.19 504.47,219.18 C504.09,220.15 505.07,221.73 507.5,224.05 C508.51,225.02 509.72,226.08 511.54,227.6 C513.134266,228.942858 514.730935,230.28286 516.33,231.62 C517.72,232.82 519.43,233.54 521.83,234.12 C522.53,234.28 522.69,234.32 524.47,234.66 C528,235.36 529.5,235.91 530.62,237.29 C532.03,239.05 532.02,241.83 530.47,246.17 C528.03,253 524.75,256.22 520.28,256.5 C516.65,256.73 512.68,255.21 505.76,251.44 C501.23,248.97 498.94,244.14 497.44,236.18 C497.27,235.31 497.12,234.4 496.94,233.32 L496.51,230.56 C495.46,223.98 494.61,221.36 492.78,220.45 C491.97,220.05 491.19,219.71 490.42,219.45 C488.15,218.68 485.82,218.43 482.32,218.53 C480.03,218.6 467.62,219.53 468.55,219.46 C448,220.83 439.75,224.51 431.46,234.45 C429.996528,236.226275 428.579385,238.040219 427.21,239.89 L424.91,242.98 L422.4,246.3 C418.3,251.66 415.34,254.78 412.01,257.42 C411.36,257.94 410.68,258.46 409.88,259.04 L405.77,261.98 C404.009777,263.257154 402.288975,264.587774 400.61,265.97 C396.06,269.71 390.87,274.57 384.36,281.35 C376.11,289.93 372.58,294.89 372.66,297.3 C372.73,298.95 374.3,299.41 379.45,299.68 C381.06,299.77 381.6,299.8 382.43,299.88 C385.38,300.12 387.52,300.61 389.24,301.56 C396.72,305.71 400.87,308.82 403.19,313.14 C406.49,319.29 403.99,326.02 394.3,333.4 C386.02,339.7 383.2,343.77 382.99,348.36 C382.93,349.53 382.99,350.29 383.25,352.79 C383.94,359.26 383.5,363.44 380.45,370.21 C379.311304,372.84921 377.918049,375.371136 376.29,377.74 C373.47,381.71 370.82,383.48 365.69,385.43 C365.26,385.59 362.35,386.66 361.42,387.02 C359.62,387.7 358.04,388.38 356.41,389.16 C352.23,391.16 348.01,393.76 343.31,397.4 C334.87,403.91 330.08,411.96 327.33,422.46 C326.23,426.66 325.78,429.27 324.53,437.67 C323.27,446.27 322.36,450.31 320.45,454.22 C318.35,458.5 308.52,480.81 307.48,483.1 C305.443577,487.610768 303.319844,492.08161 301.11,496.51 C297.04,504.62 293.5,510.58 290.38,514.32 C285,520.78 281.4,528.69 276.61,542.74 C275.973193,544.604362 275.343189,546.471041 274.72,548.34 C272.92,553.69 271.76,556.94 270.46,560.19 C264.33,575.51 245.03,586.5 224,586.5 C212.8,586.5 203.42,583.76 192.98,577.95 C187.38,574.82 188.43,575.53 170.72,563.41 C156.39,553.61 153.02,552.68 150.25,556.51 C149.88,557.01 148.44,559.25 148.42,559.28 C146.920616,561.365436 145.269471,563.337451 143.48,565.18 C142.75,565.97 137.96,571.05 136.51,572.63 C134.13,575.23 132.21,577.44 130.53,579.56 C128.582999,581.935722 126.881022,584.502089 125.45,587.22 C124.16,589.79 123.55,592.47 122.79,597.82 C122.638374,598.880246 122.48504,599.940248 122.33,601 L121.33,601 L121.8,597.68 C122.57,592.23 123.2,589.48 124.55,586.78 C126.014072,583.997735 127.756304,581.370984 129.75,578.94 C131.45,576.8 133.38,574.56 135.78,571.96 C137.23,570.37 142.02,565.28 142.74,564.5 C144.492161,562.693971 146.109814,560.762146 147.58,558.72 C147.58,558.72 149.05,556.46 149.44,555.92 C152.69,551.42 156.52,552.48 171.28,562.59 C188.95,574.67 187.9,573.97 193.47,577.07 C203.77,582.8 212.97,585.5 224,585.5 C244.65,585.5 263.57,574.73 269.54,559.81 C271.065309,555.917807 272.479218,551.982871 273.78,548.01 C274.407483,546.143608 275.03415,544.276941 275.66,542.41 C280.49,528.25 284.13,520.27 289.62,513.68 C292.67,510.02 296.18,504.11 300.22,496.07 C302.19,492.14 304.26,487.76 306.57,482.69 C307.6,480.41 317.45,458.08 319.55,453.78 C321.4,449.99 322.3,446.02 323.55,437.53 C324.79,429.09 325.25,426.46 326.36,422.21 C329.16,411.51 334.07,403.27 342.69,396.61 C346.807846,393.358275 351.263466,390.558844 355.98,388.26 C357.64,387.46 359.25,386.78 361.06,386.08 C362,385.72 364.92,384.65 365.34,384.49 C370.29,382.61 372.78,380.94 375.48,377.16 C376.83,375.26 378.16,372.86 379.54,369.79 C382.51,363.21 382.93,359.2 382.26,352.89 C382.040843,351.373695 381.95052,349.841552 381.99,348.31 C382.21,343.37 385.2,339.07 393.69,332.61 C403.02,325.5 405.35,319.27 402.31,313.61 C400.11,309.52 396.06,306.49 388.76,302.44 C387.19,301.56 385.16,301.11 382.34,300.87 C381.54,300.8 381,300.77 379.39,300.68 C373.62,300.38 371.76,299.83 371.67,297.34 C371.57,294.53 375.17,289.47 383.64,280.65 C390.17,273.85 395.39,268.96 399.97,265.2 C401.76,263.73 403.39,262.48 405.17,261.17 L409.29,258.23 C410.08,257.65 410.75,257.15 411.39,256.64 C414.65,254.04 417.55,250.99 421.6,245.7 C422.439328,244.59786 423.272674,243.491178 424.1,242.38 L426.41,239.29 C428.21,236.9 429.45,235.29 430.7,233.81 C439.17,223.64 447.68,219.85 467.97,218.51 C467.53,218.53 479.97,217.61 482.29,217.53 C485.91,217.43 488.34,217.69 490.75,218.51 C491.55,218.78 492.37,219.13 493.22,219.55 C495.49,220.69 496.39,223.42 497.49,230.4 L497.93,233.16 C498.1,234.23 498.26,235.13 498.43,235.99 C499.87,243.68 502.05,248.28 506.23,250.56 C512.99,254.24 516.83,255.71 520.22,255.5 C524.22,255.25 527.21,252.33 529.52,245.83 C530.97,241.79 530.98,239.34 529.84,237.91 C528.94,236.79 527.56,236.29 524.27,235.64 C523.375654,235.478437 522.485388,235.295049 521.6,235.09 C519.06,234.49 517.21,233.69 515.67,232.38 C514.093234,231.023708 512.499779,229.686939 510.89,228.37 C509.49164,227.214189 508.130932,226.013564 506.81,224.77 C504.08,222.17 502.95,220.34 503.53,218.82 C504.55,216.18 511.35,215.28 522.46,215.45 C528.045486,215.540562 533.625836,215.834089 539.19,216.33 C541.95,216.72 542.39,216.82 542.87,216.93 C544.27,217.23 545.82,217.55 547.49,217.84 C552.294989,218.707928 557.167264,219.149645 562.05,219.16 C567.61,219.12 572.29,218.3 575.78,216.56 C583.88,212.51 591.67,209.66 597.95,209 C598.65,208.93 599.35,208.89 600,208.87 L600,209.87 Z M600,108.93 L600,110.43 C591.38,126.48 582.73,139.98 576.35,146.35 C573.16,149.55 568.73,151.25 562.81,151.91 C558.36,152.39 554.53,152.31 543.63,151.71 C533.72,151.16 528.31,151.27 523.11,152.49 C518.183699,153.643374 513.163316,154.349574 508.11,154.6 L505.86,154.74 C493.37,155.49 486.49,156.52 473.14,160.48 C468.64,161.81 463.87,162.97 458.84,163.96 C448.073771,166.007218 437.182896,167.333499 426.24,167.93 C418.68,168.38 413.03,168.5 406,168.5 C400.6,168.5 394.1,170.11 388,173.68 C379.7,178.55 372.94,186.55 368.47,198.18 C367.210238,201.561566 365.685502,204.838411 363.91,207.98 C360.31,214.18 356.99,216.97 350.53,220.16 L346.5,222.12 C340.985061,224.798556 335.88033,228.249974 331.34,232.37 C323.14,239.7 317.62,249 308.8,267.97 L306.72,272.46 C299.42,288.16 295.22,295.76 289.37,302.33 C281.67,310.99 269.12,316.75 249.06,322.41 C244.69,323.64 230.02,327.49 229.82,327.54 C222.9,329.41 218.14,330.88 214.19,332.46 C203.64,336.68 195.48,342.98 177.81,358.98 L176.11,360.52 C167.53,368.28 162.7,372.42 157.3,376.4 C153.35,379.3 149.3,382.07 144.33,385.31 C142.27,386.65 134.03,391.91 132,393.25 C120.48,400.75 113.47,406.29 107.38,413.33 C104.976674,416.084413 102.821615,419.045946 100.94,422.18 C96.81,429.09 94.67,435.33 91.74,447.29 L90.2,453.55 C89.6,456 89.05,458.09 88.48,460.13 C85.51,470.83 81.58,477.49 73.7,487.04 L69.6,492 C68.1633232,493.734665 66.7662951,495.501788 65.41,497.3 C63.9544785,499.208711 62.7947998,501.325799 61.97,503.58 C60.81,506.81 60.45,509.48 60.1,515.52 C59.52,525.57 58.68,530.56 55.47,538.19 C53.9,541.91 49.81,552.21 49.06,553.99 C48.0089821,556.521335 46.8171184,558.991865 45.49,561.39 C42.61,566.53 38.78,571.51 32.37,578.34 C26.41,584.7 23.5,589.24 21.76,594.34 C21.2293797,595.925603 20.7689325,597.533831 20.38,599.16 L19.92,601 L18.89,601 L19.41,598.92 C19.93,596.83 20.33,595.43 20.81,594.02 C22.61,588.77 25.59,584.12 31.65,577.66 C38,570.88 41.78,565.96 44.62,560.89 C45.9281902,558.527455 47.103355,556.093662 48.14,553.6 C48.89,551.84 52.98,541.54 54.54,537.8 C57.71,530.3 58.53,525.4 59.1,515.47 C59.45,509.33 59.82,506.59 61.03,503.24 C61.8883452,500.892684 63.0952043,498.687975 64.61,496.7 C65.88,495 67.21,493.33 68.83,491.36 L72.94,486.41 C80.74,476.95 84.6,470.41 87.53,459.87 C88.09,457.83 88.63,455.75 89.24,453.31 L90.77,447.05 C93.73,435.01 95.9,428.69 100.09,421.66 C101.93,418.58 104.09,415.61 106.63,412.67 C112.8,405.55 119.87,399.97 131.46,392.41 C133.51,391.08 141.74,385.81 143.79,384.47 C148.75,381.25 152.79,378.49 156.71,375.6 C162.08,371.65 166.9,367.52 175.45,359.78 L177.15,358.24 C194.91,342.15 203.13,335.81 213.82,331.54 C217.82,329.94 222.62,328.45 229.57,326.58 C229.78,326.52 244.44,322.68 248.79,321.45 C268.69,315.84 281.11,310.14 288.64,301.67 C294.4,295.19 298.57,287.65 305.82,272.03 L307.91,267.53 C316.78,248.46 322.35,239.07 330.68,231.63 C335.28668,227.450432 340.465391,223.948573 346.06,221.23 L350.1,219.26 C356.4,216.16 359.57,213.49 363.06,207.49 C364.805487,204.389587 366.303474,201.156208 367.54,197.82 C372.1,185.98 379.01,177.8 387.51,172.82 C393.76,169.16 400.44,167.5 406.01,167.5 C413.02,167.5 418.66,167.38 426.18,166.93 C437.079386,166.333916 447.926831,165.010976 458.65,162.97 C463.65,161.99 468.4,160.84 472.87,159.52 C486.3,155.54 493.25,154.5 505.81,153.74 L508.05,153.6 C513.81,153.23 517.85,152.7 522.9,151.51 C528.21,150.26 533.69,150.16 545.5,150.81 C554.54,151.31 558.34,151.39 562.71,150.91 C568.42,150.29 572.65,148.65 575.66,145.65 C582.1,139.2 590.96,125.28 600.01,108.93 L600,108.93 Z M600,559.14 C598.72,554.54 597.8,548.59 596.67,538.89 L596.43,536.85 L596.2,534.82 C594.38,519.12 593.13,512.84 590.65,510.35 C588.19,507.89 587.61,505.32 588.13,501.71 C588.23,501.11 588.31,500.61 588.52,499.56 C589.21,496.02 589.29,494.52 588.6,492.72 C587.69,490.34 585.29,488.31 580.81,486.46 C575.73,484.37 574.29,481.62 575.92,478.02 C576.58,476.57 577.71,475 579.44,473.01 C580.48,471.81 584.92,467.05 584.52,467.48 C590.67,460.78 593.5,456.14 593.5,451 C593.357891,445.882923 595.80102,441.03801 600,438.11 L600,439.37 C596.41109,442.143068 594.36646,446.46653 594.5,451 C594.5,456.47 591.57,461.29 585.26,468.16 C585.64,467.74 581.22,472.49 580.19,473.66 C578.52,475.59 577.44,477.09 576.83,478.43 C575.46,481.47 576.6,483.65 581.19,485.53 C585.9,487.48 588.51,489.69 589.53,492.36 C590.31,494.4 590.23,496.03 589.5,499.76 C589.3,500.79 589.2,501.27 589.12,501.85 C588.64,505.18 589.15,507.44 591.35,509.65 C594.09,512.39 595.33,518.61 597.19,534.71 L597.43,536.74 L597.66,538.78 C598.48,545.79 599.19,550.84 600,554.81 L600,559.14 Z M600,496.98 C598.6,493.85 595.57,487.08 595.05,485.81 C594.03,483.28 593.8,482.01 594.14,480.63 C594.34,479.79 596.19,475.95 596.46,475.3 C597.948232,471.67118 599.132307,467.924954 600,464.1 L600,468.09 C599.289821,470.676672 598.414696,473.215201 597.38,475.69 C597.07,476.44 595.29,480.15 595.11,480.87 C594.83,481.99 595.03,483.09 595.98,485.44 C596.39,486.46 598.48,491.14 600,494.53 L600,496.98 Z M600,411.89 C598.35,413.55 596.34,414.79 593.6,416.02 C593.35,416.12 579.63,421.49 573.2,424.45 C563.85,428.77 556.5,430.35 550.17,429.7 C545.09,429.17 541.15,427.45 535.4,423.78 L532.2,421.71 C530.432141,420.546076 528.617282,419.455159 526.76,418.44 C522.71,416.26 523.51,412.64 528.23,407.97 C531.94,404.29 537.83,400.04 546.96,394.17 L551.42,391.35 C569.37,380.02 569.64,379.85 573.69,376.61 C584.94,367.61 593.38,362.59 600,361.51 L600,362.53 C593.63,363.63 585.38,368.53 574.31,377.39 C570.21,380.67 569.97,380.83 551.95,392.19 C550.46286,393.127334 548.979515,394.070675 547.5,395.02 C538.43,400.85 532.58,405.07 528.93,408.68 C524.62,412.96 523.98,415.81 527.23,417.56 C528.93,418.47 530.52,419.44 532.73,420.86 L535.93,422.94 C541.57,426.53 545.38,428.19 550.27,428.7 C556.4,429.34 563.59,427.8 572.79,423.55 C579.25,420.57 592.97,415.2 593.19,415.11 C596.23,413.74 598.29,412.4 600,410.42 L600,411.89 Z M600,370.52 L600,371.52 C593.44,371.78 587.89,374.65 580.29,380.6 L575.66,384.28 C574.248905,385.40243 572.780245,386.450519 571.26,387.42 C570.44,387.94 565.75,390.75 565.04,391.18 C561.73,393.18 558.89,394.98 556.17,396.78 C553.362989,398.630531 550.640262,400.605843 548.01,402.7 C543.4,406.42 540.61,409.6 540.04,412.05 C539.41,414.72 541.52,416.58 547.09,417.51 C557.79,419.29 568.01,417.46 577.54,412.86 C583.892828,409.796236 589.67592,405.670288 594.64,400.66 C596.692904,398.390338 598.490345,395.90209 600,393.24 L600,395.16 C598.662631,397.372233 597.108296,399.445796 595.36,401.35 C590.312752,406.447274 584.431405,410.644371 577.97,413.76 C568.27,418.44 557.84,420.31 546.92,418.49 C540.86,417.49 538.27,415.2 539.07,411.82 C539.71,409.08 542.6,405.77 547.38,401.92 C549.73,400.02 552.48,398.04 555.62,395.95 C558.35,394.13 561.2,392.34 564.52,390.33 C565.24,389.89 569.92,387.09 570.74,386.58 C572,385.78 573.34,384.82 575.04,383.49 C575.84,382.87 578.94,380.39 579.67,379.82 C587.44,373.72 593.16,370.78 600,370.52 Z M600,215.92 L600,216.92 C598.25,216.68 595.7,217.15 592.18,218.47 C582.17,222.22 578.38,223.54 573.03,225.23 C571.25,225.79 570.4,226.06 569.16,226.47 C567.68,226.97 566,227.23 562.42,227.63 C561.539914,227.729246 560.659914,227.829246 559.78,227.93 C551.98,228.87 548.5,230.4 548.5,234 C548.5,238.45 551.39,247.18 556.46,259.81 C557.411543,262.286383 558.19008,264.825817 558.79,267.41 C559.077945,268.56139 559.357952,269.714751 559.63,270.87 C561.49,278.49 562.8,281.58 565.19,282.54 C567.4,283.42 569.89,283.14 572.66,281.82 C576.14,280.13 579.88,276.88 583.86,272.35 C585.38,270.65 586.83,268.86 588.45,266.78 L591.61,262.68 C594.2,259.45 597.68,250.47 600,242.45 L600,245.9 C597.71,253.1 594.73,260.4 592.39,263.31 C591.95,263.86 589.72,266.77 589.24,267.4 C587.61,269.5 586.14,271.3 584.62,273.02 C580.54,277.63 576.72,280.96 573.09,282.72 C570.1,284.16 567.32,284.47 564.81,283.46 C561.97,282.33 560.61,279.12 558.66,271.11 C558.379021,269.956905 558.099021,268.803571 557.82,267.65 C557.02,264.45 556.35,262.2 555.54,260.19 C550.4,247.39 547.5,238.64 547.5,234 C547.5,229.63 551.34,227.94 559.66,226.93 C560.542489,226.822681 561.425853,226.722678 562.31,226.63 C565.81,226.24 567.46,225.99 568.84,225.53 C570.1,225.11 570.94,224.83 572.72,224.27 C578.06,222.59 581.83,221.27 591.82,217.53 C595.35,216.21 598.04,215.69 600,215.92 Z M5.68434189e-14,293 C10.13,281.69 18.13,269.8 23.07,257.61 C26.37,249.47 29.16,241.49 33.88,227.06 L35.47,222.22 C42,202.28 45.58,192.4 50.24,182.66 C56.31,169.94 62.79,161.48 70.51,157.12 C77.17,153.36 80.71,149.26 82.73,143.97 C83.5102996,141.825175 84.1319727,139.625923 84.59,137.39 C85.82,132.19 86.64,129.8 88.52,127.03 C90.97,123.41 94.79,120.5 100.62,118.07 C116.4,111.49 117.35,111.03 118.67,109.06 C119.32,108.08 119.5,106.91 119.41,104.55 C119.38,103.82 119.18,100.73 119.17,100.55 C119.058577,98.7020829 119.001886,96.8512722 119,95 C119,84.96 119.18,83.63 121.37,81.85 C121.89,81.43 122.5,81.05 123.44,80.55 C123.71,80.41 125.62,79.43 126.28,79.07 C129.470581,77.3578154 132.520165,75.3949799 135.4,73.2 C137.46,71.66 138.04,71.06 143.41,65.27 C147.19,61.18 149.62,58.91 152.37,57.15 C156.01,54.82 159.57,54.03 163.27,55.04 C167.67,56.24 174.08,57.04 182.05,57.5 C188.95,57.9 194.95,58 204,58 C208.87,58 212.97,58.47 219.4,59.57 C227.17,60.9 228.7,61.11 231.78,61.11 C235.83,61.11 239.21,60.23 242.46,58.16 C247.52,54.94 250.57,53.49 253.66,52.96 C257.28,52.32 258.43,52.5 270.21,55.02 C287.47,58.72 301.06,56.38 311.27,45.32 C316.37,39.79 316.75,36.42 314.75,30.52 C313.92,28.1 313.72,27.42 313.58,26.22 C313.29,23.7 314.08,21.51 316.29,19.29 C318.94,16.64 321.01,10.12 322.51,1 L324.54,1 C322.98,10.71 320.77,17.65 317.71,20.7 C315.92,22.5 315.35,24.09 315.57,25.98 C315.68,26.98 315.87,27.61 316.64,29.88 C318.86,36.41 318.4,40.54 312.74,46.68 C301.97,58.34 287.67,60.81 269.79,56.98 C258.37,54.53 257.24,54.36 254.01,54.92 C251.24,55.4 248.39,56.76 243.54,59.84 C240.031968,62.0742308 235.937828,63.2126523 231.78,63.11 C228.53,63.11 226.97,62.89 219.05,61.54 C212.74,60.46 208.73,60 204,60 C194.9,60 188.89,59.9 181.93,59.5 C173.84,59.03 167.31,58.21 162.73,56.96 C157.11,55.43 152.56,58.34 144.88,66.62 C139.38,72.56 138.8,73.15 136.6,74.8 C133.637737,77.0549212 130.501229,79.0712483 127.22,80.83 C126.54,81.2 124.64,82.18 124.38,82.32 C123.54,82.76 123.03,83.08 122.63,83.4 C121.16,84.6 121,85.8 121,95 C121,96.85 121.06,98.54 121.17,100.44 C121.17,100.61 121.37,103.72 121.41,104.47 C121.51,107.22 121.28,108.76 120.33,110.18 C118.66,112.68 118.06,112.98 101.38,119.92 C95.9,122.21 92.39,124.88 90.18,128.16 C88.47,130.67 87.71,132.89 86.54,137.86 C85.71,141.36 85.33,142.78 84.6,144.69 C82.42,150.42 78.55,154.88 71.5,158.87 C64.2,162.99 57.95,171.15 52.04,183.53 C47.44,193.17 43.87,202.99 37.37,222.85 L35.79,227.69 C31.04,242.16 28.25,250.17 24.93,258.38 C19.65,271.39 10.98,284.03 5.68434189e-14,295.98 L5.68434189e-14,293.01 L5.68434189e-14,293 Z M5.68434189e-14,371 L5.68434189e-14,370.5 L1,370.49 C7.32,370.49 8.47,375.69 5.6,383.85 C4.13303401,387.801877 2.25612518,391.589211 5.68434189e-14,395.15 L8.36486436e-14,393.23 C1.84948194,390.141968 3.40625396,386.887813 4.65,383.51 C7.34,375.91 6.36,371.49 1,371.49 C0.66,371.49 0.33,371.49 8.57092175e-14,371.51 L8.57092175e-14,324.92 C4.63479709,322.247944 9.20606285,319.467174 13.71,316.58 C27.37,307.12 43.5,278.98 43.5,262.99 C43.5,244.89 65.07,190.35 75.73,183.57 C88.44,175.48 107.97,155.61 111.53,145.82 C113.46,140.52 117.03,138.55 125.95,136.45 C132.1,135.01 134.59,134.03 136.62,131.66 C138.12,129.92 139.34,126.87 140.95,121.36 C141.18,120.58 142.85,114.68 143.38,112.9 C147,100.82 150.68,94.41 156.85,92.51 C159.35,91.75 159.88,91.53 166.59,88.81 C174.08,85.78 178.56,84.38 183.71,83.89 C190.46,83.24 196.84,84.64 203.26,88.56 C208.69,91.88 215.45,93.28 223.43,93.12 C229.46,93 235.63,92.05 243.26,90.32 C245.08,89.92 250.64,88.58 251.52,88.38 C254.21,87.78 255.86,87.49 257,87.49 C261.97,87.49 265.93,87.44 271.2,87.22 C279.1,86.9 286.76,86.3 293.95,85.34 C302.45,84.2 309.85,82.61 315.83,80.52 C334.73,73.9 348.47,62.22 349.5,52.93 C349.79,50.37 349.9,49.97 352.29,41.82 C354.62,33.87 355.5,28.89 355.01,23.59 C354.81,21.35 354.32,19.21 353.53,17.17 C352.03,13.25 350.9,7.77 350.1,0.99 L351,0.99 C351.77,7.46 352.89,12.71 354.47,16.81 C355.289383,18.9583137 355.807629,21.2096536 356.01,23.5 C356.51,28.96 355.61,34.04 353.24,42.1 C350.88,50.16 350.77,50.57 350.5,53.05 C349.41,62.8 335.4,74.73 316.17,81.46 C310.11,83.58 302.65,85.18 294.08,86.33 C286.86,87.29 279.16,87.9 271.25,88.22 C265.95,88.43 261.98,88.49 257,88.49 C255.96,88.49 254.36,88.76 251.74,89.36 C250.87,89.56 245.31,90.89 243.48,91.3 C235.8,93.03 229.56,94 223.45,94.12 C215.3,94.29 208.35,92.85 202.74,89.42 C196.51,85.61 190.34,84.26 183.81,84.88 C178.77,85.36 174.37,86.74 166.97,89.74 C160.22,92.48 159.68,92.69 157.15,93.47 C151.42,95.23 147.87,101.43 144.34,113.19 C143.81,114.96 142.14,120.85 141.91,121.65 C140.25,127.3 139,130.43 137.38,132.32 C135.16,134.9 132.54,135.94 125.37,137.62 C117.57,139.45 114.24,141.28 112.47,146.16 C108.82,156.2 89.15,176.22 76.27,184.41 C65.94,191 44.5,245.2 44.5,263 C44.5,279.34 28.2,307.78 14.28,317.41 C12.14,318.89 6.04,322.53 5.86197757e-14,326.09 L5.86197757e-14,324.93 L5.86197757e-14,371.02 L5.68434189e-14,371 Z M4.97379915e-14,197.3 L4.97379915e-14,196.19 C7.42,192.37 14.55,185.96 21.84,177.21 C25.64,172.65 36.05,158.43 37.63,156.66 C39.43,154.62 41.69,152.7 45.05,150.21 C46.13,149.41 49.97,146.64 50.54,146.22 C59.9,139.37 64.54,134.26 66.52,126.86 C67.32,123.88 68.06,120.08 68.98,114.56 C69.21,113.12 70.98,102.1 71.54,98.77 C74.41,82 77.27,71.98 81.61,66.67 C92.46,53.43 101.5,39.13 101.5,34 C101.5,31.46 101.84,30.65 107.55,18.29 C108.23,16.8 108.8,15.55 109.32,14.36 C111.82,8.61 113.22,4.32 113.46,1 L114.46,1 C114.23,4.48 112.8,8.87 110.23,14.76 C109.71,15.96 109.14,17.21 108.45,18.71 C102.91,30.72 102.5,31.7 102.5,34 C102.5,39.47 93.41,53.84 82.39,67.31 C78.19,72.43 75.36,82.37 72.53,98.95 C71.96,102.28 70.2,113.28 69.96,114.73 C69.04,120.29 68.29,124.11 67.48,127.13 C65.43,134.81 60.66,140.06 51.13,147.04 L45.64,151.02 C42.34,153.47 40.13,155.36 38.37,157.33 C36.84,159.06 26.43,173.26 22.61,177.86 C15.09,186.88 7.73,193.46 4.26325641e-14,197.32 L4.97379915e-14,197.3 Z M4.94049246e-14,559.13 L4.94049246e-14,554.8 C0.48,557.16 1,559.15 1.6,560.95 C3.6,566.98 6.2,569.21 9.79,567.54 C28.76,558.69 43.5,543.4 43.5,528 C43.5,511.8 49.87,496.01 60.6,481.7 C62.48,479.2 64.26,477.3 66.13,475.7 C66.86,475.08 67.58,474.52 68.43,473.9 L70.43,472.47 C74.11,469.79 75.75,467.19 77.51,459.88 C78.26,456.81 78.89,454.86 81.71,446.62 L82.34,444.74 C85.58,435.16 86.9,429.77 86.51,426.09 C86.03,421.66 82.71,420.86 75.21,424.45 C72.2379258,425.867907 69.1822716,427.103527 66.06,428.15 C52.17,432.82 39.1,433.95 23.4,433.57 L21.45,433.52 L20,433.5 C14.8388645,433.501516 9.7272922,434.506849 4.95,436.46 C3.1789647,437.207611 1.51454365,438.186089 2.03481676e-14,439.37 L2.03481676e-14,438.11 C1.41663067,437.087194 2.9426899,436.225222 4.55,435.54 C9.91132078,433.342437 15.6794774,432.312896 21.47,432.52 L23.42,432.57 C39.02,432.95 51.99,431.82 65.74,427.2 C68.8246307,426.167964 71.8435514,424.949041 74.78,423.55 C82.82,419.71 86.94,420.7 87.5,425.98 C87.92,429.87 86.58,435.32 83.29,445.06 L82.65,446.94 C79.85,455.14 79.22,457.09 78.49,460.12 C76.67,467.64 74.9,470.46 71.02,473.28 L69.02,474.71 C68.18,475.31 67.48,475.86 66.77,476.46 C64.7671227,478.199605 62.9658453,480.158536 61.4,482.3 C50.79,496.45 44.5,512.04 44.5,528 C44.5,543.88 29.5,559.45 10.21,568.45 C5.91,570.46 2.82,567.79 0.65,561.27 C0.42,560.59 0.21,559.88 7.10542736e-15,559.14 L4.94049246e-14,559.13 Z M4.95159469e-14,496.97 L4.95159469e-14,494.52 L1.46,497.79 C3.56,502.59 4.92,508.12 5.72,514.56 C6.38,519.86 6.56,523.86 6.76,533.06 C6.96,542.38 7.26,545.81 8.39,548.11 C9.67,550.71 12.06,550.46 16.68,546.61 C33.82,532.31 38.5,523.71 38.5,507.99 C38.5,500.82 39.6,495.6 42.2,490.31 C44.47,485.64 45.85,483.69 55.6,470.69 C57.8846195,467.553857 60.4267595,464.613672 63.2,461.9 C64.3258408,460.818977 65.507455,459.797581 66.74,458.84 C67.12,458.54 67.38,458.32 67.63,458.1 C68.7236921,457.184063 69.6186684,456.054283 70.26,454.78 C71.1880384,452.870958 71.9443545,450.883118 72.52,448.84 L72.89,447.64 L73.25,446.49 C73.54,445.58 73.73,444.94 73.91,444.33 C74.36,442.8 74.65,441.65 74.82,440.67 C75.2,438.47 74.94,437.18 73.97,436.52 C71.62,434.91 64.69,436.28 50.17,441.46 C40.63,444.86 34.05,445.63 22.32,445.72 C14.61,445.78 11.89,446.12 9.07,447.84 C5.59,449.96 3.23,454.24 1.49,462.1 C0.99,464.3 0.5,466.29 3.55271368e-14,468.08 L3.55271368e-14,464.1 L0.51,461.88 C2.31,453.78 4.79,449.28 8.55,446.98 C11.59,445.13 14.41,444.78 22.32,444.72 C33.93,444.63 40.42,443.88 49.83,440.52 C64.76,435.2 71.78,433.81 74.53,435.69 C75.91,436.63 76.24,438.29 75.81,440.84 C75.5698283,442.117074 75.2559706,443.379183 74.87,444.62 L74.21,446.79 L73.85,447.94 L73.48,449.14 C72.8864289,451.238626 72.1066665,453.280064 71.15,455.24 C70.35,456.77 69.54,457.76 68.29,458.85 L67.37,459.62 L66.35,460.45 C65.45,461.19 64.7,461.85 63.88,462.63 C61.1506488,465.304074 58.6486736,468.200745 56.4,471.29 C46.7,484.22 45.33,486.16 43.09,490.75 C40.57,495.9 39.5,500.97 39.5,507.99 C39.5,524.03 34.68,532.9 17.32,547.37 C12.28,551.57 9.14,551.92 7.49,548.55 C6.27,546.05 5.97,542.61 5.76,533.08 C5.56,523.92 5.38,519.93 4.73,514.68 C3.94,508.34 2.61,502.88 0.54,498.19 L4.95159469e-14,496.98 L4.95159469e-14,496.97 Z M379.27,1 L380.31,1 L381.81,6.26 C385.09,17.82 386.7,25.59 387.07,34.06 C387.56,45.07 385.55,55.32 380.44,65.23 C372.64,80.36 359.97,91.73 344.22,99.33 C331.84,105.29 318.1,108.5 308,108.5 C301.16,108.5 290.76,109.88 270.73,113.12 L268.46,113.49 C243.96,117.48 236.81,118.49 231,118.49 C227.51,118.49 226.92,118.41 211.46,115.69 C207.9,115.05 205.14,114.59 202.46,114.19 C182.23,111.23 171.46,112.99 170.5,122.05 C170.4,122.9 170.32,123.77 170.21,124.86 L169.94,127.59 C168.84,138.49 167.92,143.32 165.63,147.55 C162.73,152.89 157.86,155.5 150,155.5 C139.8,155.5 137.08,156.1 134.5,158.67 C135.02,158.16 129.47,164.52 126.34,167.37 C123.59,169.87 112.02,179.92 110.57,181.2 C108.364586,183.145074 106.184404,185.118573 104.03,187.12 C97.06,193.61 92.22,198.88 89.43,203.27 C83.51,212.57 78.95,221.31 77.74,227.35 C76.08,235.65 81.41,236.89 96.76,228.56 C111.311433,220.674289 126.169766,213.368552 141.3,206.66 C144.8,205.1 155.34,200.46 156.98,199.71 C162.03,197.46 165.28,195.91 167.76,194.56 L169.71,193.49 L171.89,192.31 C173.65,191.37 175.27,190.55 176.89,189.76 C194.99,181.04 211.37,179.3 227.22,188.56 C250.11,201.9 265.5,225.58 265.5,245 C265.5,264.12 264.77,270.13 260.32,278.2 C258.904544,280.725681 257.250317,283.109911 255.38,285.32 C248.91,293.09 243.57,301.52 242.62,306.59 C241.42,312.93 247.31,313.62 262.79,306.54 C276.1,300.46 285.19,291.59 291.29,280.22 C293.830361,275.396209 295.874184,270.326859 297.39,265.09 C298.29,262.11 300.56,253.44 300.8,252.61 C301.239401,250.951432 301.825029,249.335101 302.55,247.78 C310.02,232.85 323.64,217.28 338.8,210.54 C346.41,207.16 351.8,200.89 358.2,189.75 C359.04,188.27 362.46,182.11 363.34,180.58 C366.86,174.48 369.56,170.88 372.71,168.6 C382.86,161.2 401.41,157.5 423,157.5 C430.52,157.5 439.54,156.26 450.51,153.92 C455.517713,152.837986 460.505214,151.664457 465.47,150.4 C464.17,150.73 481.01,146.42 484.89,145.51 C499.04,142.18 525.96,140.5 549,140.5 C566.36,140.5 576.82,131.27 587.53,101.83 C594.15,83.62 594.15,75.46 590.22,67.48 L589.04,65.11 C588.046854,63.2252495 587.518836,61.1303211 587.5,59 C587.5,54.97 587.5,54.99 590,34.44 C590.46,30.71 590.8,27.7 591.12,24.8 C592.02,16.35 592.5,9.6 592.5,4 C592.5,3.06 592.48,2.06 592.46,1 L593.46,1 C593.49,2.06 593.5,3.06 593.5,4 C593.5,9.65 593.02,16.43 592.11,24.9 C591.81,27.81 591.45,30.83 591,34.56 C588.5,55.01 588.5,55.03 588.5,59 C588.5,60.97 588.95,62.57 589.95,64.68 C590.19,65.19 591.11,67.03 591.12,67.04 C595.18,75.28 595.18,83.72 588.47,102.17 C577.63,131.97 566.84,141.5 549,141.5 C526.04,141.5 499.17,143.18 485.11,146.49 C481.25,147.39 464.42,151.69 465.71,151.37 C460.735271,152.637953 455.737769,153.814817 450.72,154.9 C439.68,157.25 430.61,158.5 423,158.5 C401.6,158.5 383.24,162.17 373.3,169.4 C370.3,171.59 367.66,175.1 364.2,181.08 C363.33,182.6 359.91,188.76 359.06,190.25 C352.57,201.55 347.06,207.96 339.2,211.45 C324.3,218.08 310.82,233.48 303.45,248.22 C302.750277,249.723876 302.184747,251.286614 301.76,252.89 C301.53,253.69 299.26,262.38 298.36,265.39 C296.819849,270.686369 294.745879,275.812661 292.17,280.69 C285.97,292.25 276.73,301.27 263.21,307.45 C247.11,314.81 240.21,314 241.63,306.41 C242.63,301.12 248.03,292.58 254.62,284.68 C256.445029,282.519083 258.059054,280.188457 259.44,277.72 C263.79,269.84 264.5,263.95 264.5,245 C264.5,225.96 249.31,202.6 226.78,189.45 C211.21,180.37 195.16,182.07 177.33,190.66 C174.9131,191.824319 172.532009,193.061552 170.19,194.37 L168.24,195.44 C164.690156,197.306365 161.070895,199.037606 157.39,200.63 C155.74,201.37 145.21,206.01 141.7,207.58 C126.597017,214.276422 111.765377,221.568812 97.24,229.44 C81.29,238.1 74.87,236.6 76.76,227.15 C78,220.95 82.59,212.13 88.58,202.73 C91.43,198.25 96.32,192.93 103.35,186.39 C105.33,184.54 107.47,182.6 109.91,180.45 C111.37,179.16 122.93,169.12 125.66,166.63 C128.75,163.83 134.26,157.49 133.8,157.96 C136.62,155.14 139.55,154.5 150,154.5 C157.5,154.5 162.04,152.07 164.75,147.08 C166.95,143.01 167.86,138.24 168.95,127.49 L169.21,124.76 L169.51,121.95 C170.07,116.53 173.98,113.45 180.74,112.35 C186.18,111.47 193.25,111.84 202.6,113.21 C205.3,113.61 208.07,114.07 211.64,114.7 C226.97,117.4 227.6,117.5 231,117.5 C236.73,117.5 243.9,116.47 268.3,112.5 L270.57,112.14 C290.67,108.88 301.09,107.5 308,107.5 C317.95,107.5 331.54,104.32 343.78,98.42 C359.35,90.92 371.87,79.69 379.56,64.77 C384.58,55.02 386.56,44.95 386.07,34.1 C385.7,25.73 384.11,18.02 380.84,6.53 L379.27,1 Z M392.95,1 L393.97,1 C394.75,4.9 395.89,9.7 397.48,15.88 C401.11,29.93 400.54,42.91 396.73,54.65 C394.328299,62.2161821 390.472886,69.2408467 385.38,75.33 C379.565815,82.20015 373.095158,88.4866004 366.06,94.1 C354.74,103.12 342.7,109.59 330.11,112.49 C322.650549,114.179729 315.119813,115.537731 307.54,116.56 C304.37,117 301.18,117.41 297.24,117.88 L287.85,119 C276.32,120.41 270.4,121.55 266.21,123.46 C256.93,127.67 237.86,129.5 217,129.5 C215.63,129.5 214.2,129.38 212.7,129.15 C210.08,128.74 207.7,128.12 203.56,126.86 C196.22,124.65 193.93,124.11 190.93,124.3 C187.03,124.53 184.3,126.59 182.46,131.19 C180.6,135.85 180.04,138.72 179.12,146.17 C178.02,155.15 176.25,158.29 169.15,160.47 C166.807192,161.14813 164.531101,162.038484 162.35,163.13 C161.72,163.46 161.19,163.77 160.59,164.15 L159.25,165.01 C157.35,166.15 155.39,166.5 150,166.5 C146.8,166.5 141.17,165.95 140.49,166.11 C139.27,166.39 139.74,165.97 133.35,172.35 C131.85,173.85 129.86,175.53 127.03,177.72 C125.51,178.9 119.87,183.15 119.09,183.75 C114.13,187.53 110.76,190.35 108.03,193.13 C103.15,198.11 101.18,202.28 102.47,205.83 C103.81,209.5 106.54,210.25 111.37,208.65 C114.04496,207.689856 116.642541,206.526461 119.14,205.17 C120.64,204.4 126.92,201.04 128.51,200.21 C132.499898,198.079921 136.610153,196.183394 140.82,194.53 C144.558699,193.054016 148.241242,191.439568 151.86,189.69 C153.9,188.72 162.6,184.53 164.86,183.47 C169.27,181.37 172.96,179.69 176.51,178.18 C193.65,170.88 205.83,168.28 214.18,171.53 L219.61,173.63 C221.91,174.51 223.78,175.25 225.63,176.01 C230.079549,177.801141 234.441168,179.803414 238.7,182.01 C257.04,191.64 269.05,204.14 273.49,221.88 C280.45,249.73 277.09,267.41 265.41,284.28 C261.44,290.03 261.89,293.48 265.47,293.25 C269.61,292.97 275.68,288.3 280.58,280.73 C283.68,275.93 285.68,270.28 288.63,259.2 L290.32,252.85 C290.98,250.38 291.56,248.33 292.15,246.35 C297.08,229.79 303.15,219.07 313.71,211.59 C320.86,206.53 337.44,196.09 339.19,194.84 C345.93,190.03 349.72,185.4 353.53,176.84 C361.27,159.4 374.62,152.5 398,152.5 C407.36,152.5 415.91,151.37 427.53,149.01 C429.598815,148.593805 431.665508,148.167133 433.73,147.73 C436.13,147.23 437.8,146.89 439.39,146.6 C443.42,145.86 446.43,145.5 449,145.5 C453.44,145.5 458.39,144.5 480.39,139.51 L483.34,138.85 C499.68,135.18 508.98,133.5 515,133.5 C516.54,133.5 517.4,133.51 521.4,133.6 C529.2,133.75 533.67,133.73 538.73,133.4 C555.14,132.34 565.46,128.04 568.53,118.84 C569.551529,115.83417 570.73663,112.886438 572.08,110.01 C571.93,110.32 574.37,105.05 574.98,103.63 C580.36,91.33 580.55,81.71 573.54,64.19 C570.935703,57.5277057 569.168849,50.5677796 568.28,43.47 C566.67,31.49 566.9,20.33 568.38,3.12 L568.58,1 L569.58,1 L569.38,3.2 C567.9,20.35 567.68,31.44 569.27,43.34 C570.149672,50.3522089 571.896359,57.2281106 574.47,63.81 C581.57,81.59 581.38,91.48 575.9,104.03 C575.28,105.46 572.84,110.75 572.99,110.43 C571.658485,113.273693 570.483399,116.18804 569.47,119.16 C566.24,128.88 555.57,133.31 538.79,134.4 C533.69,134.73 529.21,134.75 521.37,134.6 C517.39,134.51 516.53,134.5 515,134.5 C509.09,134.5 499.82,136.17 483.56,139.82 L480.61,140.49 C458.45,145.51 453.56,146.5 449,146.5 C446.5,146.5 443.55,146.86 439.57,147.59 C437.99,147.88 436.32,148.21 433.93,148.7 C431.863055,149.128663 429.796388,149.558663 427.73,149.99 C416.05,152.36 407.43,153.5 398,153.5 C374.98,153.5 362,160.21 354.47,177.16 C350.57,185.96 346.65,190.74 339.77,195.66 C337.99,196.93 321.41,207.36 314.29,212.41 C303.95,219.73 297.99,230.28 293.1,246.64 C292.52,248.6 291.95,250.64 291.28,253.11 L289.59,259.46 C286.61,270.64 284.59,276.36 281.42,281.27 C276.37,289.08 270.05,293.95 265.53,294.25 C260.83,294.56 260.23,290.02 264.59,283.72 C276.11,267.08 279.41,249.69 272.51,222.12 C268.16,204.7 256.35,192.4 238.24,182.9 C234.24,180.8 230.04,178.9 225.25,176.93 C223.41,176.18 221.55,175.44 219.25,174.55 L213.82,172.47 C205.79,169.35 193.8,171.89 176.9,179.1 C173.38,180.6 169.69,182.29 165.29,184.37 L152.29,190.59 C147.58,192.81 144.13,194.34 141.18,195.47 C137.004456,197.108745 132.927594,198.988576 128.97,201.1 C127.39,201.93 121.11,205.28 119.6,206.06 C117.060987,207.440123 114.419917,208.62359 111.7,209.6 C106.4,211.35 103.08,210.45 101.53,206.17 C100.07,202.15 102.19,197.67 107.33,192.43 C110.08,189.61 113.49,186.77 118.48,182.95 C119.27,182.35 124.91,178.1 126.42,176.93 C128.602158,175.298393 130.682693,173.535114 132.65,171.65 C139.39,164.91 138.75,165.49 140.26,165.14 C141.13,164.94 146.95,165.5 150,165.5 C155.22,165.5 157.03,165.18 158.74,164.15 L160.05,163.31 C160.67,162.91 161.23,162.59 161.89,162.24 C164.122525,161.123719 166.452166,160.213284 168.85,159.52 C175.49,157.48 177.07,154.68 178.13,146.05 C179.06,138.52 179.63,135.58 181.53,130.81 C183.52,125.86 186.57,123.55 190.87,123.3 C194.04,123.1 196.37,123.65 203.84,125.9 C206.787434,126.872624 209.802171,127.62798 212.86,128.16 C214.31,128.38 215.69,128.5 217,128.5 C237.71,128.5 256.7,126.68 265.8,122.54 C270.12,120.58 276.09,119.44 287.73,118.01 L297.13,116.89 C301.05,116.41 304.24,116.01 307.4,115.57 C315.56,114.43 322.8,113.14 329.89,111.51 C342.31,108.65 354.22,102.25 365.44,93.31 C372.424286,87.7351764 378.848044,81.4922747 384.62,74.67 C389.621626,68.6854582 393.408898,61.7834517 395.77,54.35 C399.53,42.78 400.09,29.99 396.52,16.12 C395.19276,11.1133935 394.002317,6.07151896 392.95,1 Z M506.7,1 L507.96,1 C507.46,1.66 507.06,2.18 506.79,2.51 C502.84,7.47 499.89,10.43 496.97,12.08 C495.46603,12.979842 493.752344,13.4694665 492,13.5 C489.62,13.5 487.76,14.17 485.29,15.71 L482.64,17.42 C478.26,20.22 474.63,21.5 469,21.5 C463.4,21.5 459.01,20.24 452.92,17.45 C452.151133,17.1014611 451.384451,16.7481209 450.62,16.39 L448.44,15.41 C446.84,14.71 445.52,14.24 444.27,13.93 C443.201826,13.6527611 442.103534,13.5083373 441,13.5 C438.7,13.5 436.7,12.82 430,10.13 L428.44,9.51 C423.44,7.54 420.34,6.69 417.92,6.85 C414.99,7.05 413.5,8.88 413.5,13 C413.5,33.76 408.29,63.42 401.35,70.35 C393.77,77.94 374.8,94.05 367.29,99.41 C354.13,108.81 336.12,119.61 323.18,124.47 C318.832271,126.101296 314.38284,127.447482 309.86,128.5 C306.58,129.28 303.26,129.93 298.61,130.74 C298.08,130.84 289.81,132.24 287.11,132.73 C282.25,133.6 277.81,134.47 273.11,135.49 C252.49,139.97 248.04,140.5 235,140.5 C232.51,140.5 232.1,140.43 220.95,138.5 C218.53,138.08 216.64,137.77 214.8,137.5 C206.69,136.31 200.97,136.14 197.16,137.3 C192.62,138.7 191.23,141.95 193.46,147.82 C195.48,153.1 198.3,156.43 202.3,158.56 C205.56,160.3 209.05,161.16 216.12,162.27 C225.54,163.75 227.06,164.02 231.62,165.19 C238.11687,166.838526 244.374835,169.315497 250.24,172.56 C258.54,177.14 264.82,184.06 270.22,193.45 C272.95,198.18 279.68,212.78 280.76,214.64 C284.16,220.49 287.02,221.27 291.65,216.64 C296.6,211.7 302,208.27 312.78,202.58 C313.25,202.33 314.84,201.48 314.9,201.46 C322.88,197.25 326.82,194.95 330.77,191.92 C335.88,188.02 339.43,183.82 341.54,178.81 C350.06,158.57 362.29,145.5 374,145.5 L379.5,145.53 C390.03,145.61 396.85,145.55 404.4,145.22 C418.06,144.6 428.18,143.13 433.79,140.55 C439.64,137.85 447.21,135.06 457.97,131.53 C461.43,130.39 464.26,129.48 470.67,127.43 C478.37,124.98 481.75,123.89 485.84,122.53 C489.609658,121.268754 493.386384,120.028735 497.17,118.81 C500.84,117.61 503.13,116.81 505.2,116.03 C507.477573,115.185983 509.701683,114.204169 511.86,113.09 C513.73,112.11 515.62,110.99 517.72,109.59 C521.2,107.26 523.87,106.46 529.76,105.46 L530.91,105.26 C536.62,104.25 539.91,102.96 543.67,99.63 C551.49,92.67 552.25,76.45 547.51,55.11 C545.81,47.44 545.41,35.83 545.94,19.64 C546.144088,13.4238137 546.417439,7.21009465 546.76,1 L547.76,1 L547.61,4.06 C547.29,10.48 547.08,15.08 546.93,19.68 C546.42,35.78 546.81,47.33 548.49,54.89 C553.31,76.57 552.53,93.09 544.33,100.37 C540.42,103.85 536.96,105.21 531.09,106.24 L529.93,106.44 C524.17,107.43 521.61,108.19 518.28,110.42 C516.35949,111.714072 514.369872,112.902502 512.32,113.98 C510.126079,115.113082 507.865233,116.111594 505.55,116.97 C503.46,117.76 501.16,118.55 497.48,119.76 C493.708032,121.00083 489.934697,122.237497 486.16,123.47 C482.06,124.84 478.68,125.93 470.98,128.39 C464.56,130.43 461.74,131.34 458.28,132.47 C447.55,136 440.01,138.77 434.21,141.45 C428.45,144.11 418.24,145.59 404.44,146.22 C396.88,146.55 390.04,146.61 379.49,146.53 L374,146.5 C362.81,146.5 350.84,159.29 342.46,179.2 C340.27,184.39 336.62,188.72 331.38,192.72 C327.36,195.79 323.39,198.11 315.37,202.34 L313.25,203.46 C302.55,209.11 297.21,212.5 292.35,217.36 C287.21,222.5 283.6,221.51 279.9,215.14 C278.78,213.22 272.05,198.64 269.36,193.94 C264.03,184.7 257.88,177.92 249.76,173.44 C243.964349,170.234081 237.780228,167.78732 231.36,166.16 C226.86,164.99 225.34,164.73 215.96,163.26 C208.79,162.14 205.22,161.26 201.83,159.45 C197.61,157.2 194.63,153.68 192.53,148.18 C190.1,141.79 191.75,137.92 196.87,136.35 C200.87,135.13 206.69,135.3 214.95,136.52 C216.79,136.79 218.69,137.1 221.12,137.52 C232.14,139.42 232.6,139.5 235,139.5 C247.96,139.5 252.35,138.98 272.9,134.51 C277.61,133.49 282.06,132.61 286.93,131.74 C289.64,131.26 297.91,129.84 298.43,129.76 C303.07,128.95 306.38,128.3 309.63,127.53 C314.18,126.46 318.39,125.19 322.83,123.53 C335.66,118.72 353.62,107.94 366.71,98.59 C374.18,93.26 393.11,77.19 400.65,69.65 C407.3,62.98 412.5,33.49 412.5,13 C412.5,8.39 414.36,6.1 417.85,5.85 C420.48,5.67 423.65,6.55 428.81,8.58 L430.37,9.2 C436.9,11.82 438.9,12.5 441,12.5 C442.14,12.5 443.3,12.66 444.5,12.96 C445.82,13.29 447.18,13.78 448.84,14.49 C449.96344,14.9741577 451.077,15.4809274 452.18,16.01 L453.33,16.55 C459.31,19.28 463.56,20.5 469,20.5 C474.41,20.5 477.87,19.29 482.1,16.58 C482.3,16.45 484.2,15.2 484.76,14.86 C487.38,13.23 489.4,12.5 492,12.5 C493.47,12.5 494.94,12.07 496.47,11.2 C499.25,9.64 502.14,6.75 506.01,1.89 L506.71,1 L506.7,1 Z M324.54,601 L322.51,601 C323,598.04 323.42,594.8 323.79,591.34 C324.23,587.24 324.55,583.09 324.77,579.13 C324.85,577.74 324.91,576.48 324.42,571.84 C323.95,569.9 323.49,567.7 323.06,565.3 C321.05,554.04 320.4,542.4 321.92,531.52 C322.710963,525.305401 324.458281,519.250509 327.1,513.57 C330.317675,506.872989 334.56974,500.724368 339.7,495.35 C343.08,491.75 345.23,489.85 351.53,484.56 C356.03,480.78 357.88,479 359.05,477.06 C359.69,475.99 360,475 360,474 C360,472.25 360,472.26 359.25,464.77 C358.89,461.07 358.68,458.47 358.57,455.81 C358.07,443.71 360.19,436.21 366.68,434.05 C382.58,428.75 392.57,421.95 400.13,408.51 C409.6,391.65 425.85,377 436,377 C448.36,377 456,375.04 465.41,368.2 C472.17,363.28 474.91,361.6 477.88,360.74 C480.1,360.1 481.68,360 487,360 C488.86,360 490.53,359.17 492.57,357.38 C493.65,356.42 497.68,352.26 498.17,351.78 C504.21,345.93 510.15,343 519,343 C521.45,343 523.54,343.04 526.32,343.12 C533.83,343.35 535.19,343.29 537.59,342.42 C540.62,341.32 543.12,339.39 552.34,331.25 C560.34,324.19 563.06,322.33 575.21,314.78 C576.65,313.88 577.8,313.15 578.9,312.41 C582.265052,310.189327 585.430341,307.679849 588.36,304.91 C592.48,301.03 596.38,297.06 600,293.01 L600,295.99 C596.703148,299.572894 593.277568,303.035165 589.73,306.37 C586.55,309.37 583.53,311.72 580.01,314.07 C578.89,314.83 577.73,315.57 576.26,316.47 C564.21,323.97 561.55,325.79 553.66,332.75 C544.2,341.1 541.65,343.07 538.27,344.3 C535.53,345.3 534.08,345.36 526.26,345.12 C523.5,345.04 521.43,345 519,345 C510.73,345 505.25,347.7 499.57,353.22 C499.13,353.65 495.05,357.86 493.89,358.88 C491.52,360.97 489.43,362 487,362 C481.9,362 480.4,362.1 478.44,362.66 C475.77,363.44 473.15,365.03 466.59,369.81 C456.79,376.94 448.74,379 436,379 C426.78,379 411.04,393.2 401.87,409.49 C394.03,423.43 383.63,430.51 367.32,435.95 C362.01,437.72 360.11,444.46 360.57,455.73 C360.67,458.33 360.88,460.92 361.25,464.57 C362,472.19 362,472.15 362,474 C362,475.38 361.58,476.73 360.76,478.09 C359.43,480.29 357.5,482.16 352.82,486.09 C346.57,491.33 344.46,493.21 341.15,496.72 C336.162404,501.943753 332.028446,507.920274 328.9,514.43 C326.349029,519.924556 324.662461,525.78032 323.9,531.79 C322.41,542.45 323.05,553.88 325.03,564.94 C325.46,567.31 325.91,569.47 326.36,571.38 C326.52,572.04 326.66,572.63 326.96,575.44 C326.744328,580.824566 326.354123,586.200724 325.79,591.56 C325.42,594.93 325.01,598.09 324.54,601 Z M311.14,601 L310.09,601 L310.21,600.72 C313.28,593.56 314.5,588.89 314.5,582 C314.5,578.43 314.43,577.07 313.74,566.35 C312.97,554.31 312.74,546.71 313.19,538.05 C313.77,526.55 315.59,515.95 319,505.89 C320.3,502.09 321.8,498.39 323.55,494.79 C327.01,487.65 330.38,482.4 333.97,478.19 C335.337756,476.593615 336.789825,475.071446 338.32,473.63 C338.75,473.23 341.32,470.83 341.99,470.18 C347.71,464.58 349.5,458.66 349.5,441 C349.5,422.16 352.4,417.23 365.32,412.76 C366.41,412.39 367.24,412.09 368.09,411.78 C370.179758,411.013296 372.217398,410.11139 374.19,409.08 C379.14,406.48 383.83,402.86 388.63,397.66 C414.13,370.03 425.78,362.5 445,362.5 C453.28,362.5 459.54,360.55 467,356.2 C468.78,355.17 480.82,347.38 485.16,344.93 C487.99,343.34 490.82,341.9 493.79,340.54 C501.71,336.94 507.76,336.09 520.39,335.74 C527.92,335.54 531.09,335.25 534.65,334.16 C539.2,332.76 542.71,330.16 545.58,325.73 C547.78,322.32 552.43,318.65 560.24,313.67 C561.85,312.64 563.51,311.62 565.89,310.17 C575.42,304.32 577.45,303.04 580.7,300.6 C586.04,296.6 590,292.23 594.38,285.83 C596.327311,282.961516 598.201252,280.043903 600,277.08 L600,278.98 C598.03,282.15 596.6,284.36 595.2,286.4 C590.78,292.88 586.74,297.32 581.3,301.4 C578.01,303.86 575.98,305.15 566.41,311.01 C564.523059,312.160058 562.646319,313.326771 560.78,314.51 C553.08,319.41 548.52,323.03 546.42,326.27 C543.42,330.9 539.72,333.66 534.94,335.12 C531.26,336.24 528.04,336.54 520.41,336.75 C507.91,337.09 501.97,337.93 494.21,341.45 C491.295301,342.775942 488.4393,344.227297 485.65,345.8 C481.35,348.23 469.31,356.02 467.5,357.07 C459.9,361.5 453.47,363.5 445,363.5 C426.13,363.5 414.7,370.9 389.37,398.34 C384.49,403.62 379.7,407.31 374.67,409.96 C372.67,411.01 370.67,411.88 368.44,412.71 C367.58,413.03 366.74,413.33 363.07,414.58 C357.99,416.34 355.63,417.83 353.79,420.95 C351.56,424.73 350.5,430.89 350.5,441 C350.5,458.9 348.63,465.07 342.7,470.89 C342.01,471.56 339.43,473.95 339.01,474.35 C337.504317,475.769304 336.07561,477.26811 334.73,478.84 C331.2,482.98 327.87,488.16 324.45,495.22 C322.722726,498.786104 321.219802,502.456578 319.95,506.21 C316.57,516.18 314.77,526.69 314.19,538.11 C313.75,546.71 313.97,554.28 314.74,566.28 C315.43,577.04 315.5,578.4 315.5,582 C315.5,588.35 314.48,592.87 311.15,601 L311.14,601 Z M336.22,601 L335.22,601 C335.18,596.27 335.28,591.61 335.5,585.98 C335.76,579.57 335.1,574.19 332.97,561.61 L332.66,559.75 C330.54,547.2 329.9,540.4 330.69,533.28 C331.72,524.03 335.44,516.6 342.69,510.61 C364.73,492.41 372.5,480.43 372.5,466 C372.5,463.4 372.2,461.19 371.52,457.83 C370.55,453.04 370.42,452.15 370.55,450.26 C370.75,447.7 371.82,445.56 374.11,443.54 C376.78,441.19 381.16,438.94 387.83,436.53 C397.55,433.03 403.35,427.35 412.13,414.96 L413.91,412.46 C418.39,406.13 421.01,402.83 424.34,399.68 C428.65,395.61 433.32,392.91 438.88,391.51 C452.18,388.19 459.25,386.04 464.22,383.87 C466.032379,383.076331 467.795542,382.174713 469.5,381.17 C470.6,380.52 471.25,380.13 473.74,378.57 C476.44,376.89 478.96,376.49 485.12,376.29 C490.56,376.11 493.02,375.86 496.09,374.88 C499.771938,373.703249 503.067897,371.554311 505.63,368.66 C510.5,363.36 515.66,361.05 523.42,359.76 C524.49,359.58 525.3,359.46 527.28,359.18 C534.18,358.21 537.22,357.49 540.76,355.56 C545.26,353.11 547.55,351.12 564.22,335.88 L567.36,333.03 C577.01,324.32 583.48,319.2 588.78,316.55 C593.03,314.43 596.38,311.86 600,307.95 L600,309.4 C596.58,312.97 593.31,315.4 589.22,317.45 C584.04,320.04 577.61,325.12 568.02,333.77 L564.9,336.62 C548.1,351.97 545.85,353.92 541.24,356.44 C537.56,358.44 534.44,359.19 527.42,360.17 C525.45,360.45 524.64,360.57 523.58,360.74 C516.02,362 511.06,364.22 506.37,369.34 C503.691319,372.363418 500.247164,374.608855 496.4,375.84 C493.2,376.84 490.68,377.11 485.15,377.29 C479.17,377.49 476.76,377.86 474.26,379.42 C472.858507,380.31447 471.441628,381.1846 470.01,382.03 C468.269939,383.053621 466.47004,383.971937 464.62,384.78 C459.58,386.98 452.47,389.15 439.12,392.48 C429.38,394.92 423.86,400.13 414.72,413.04 L412.95,415.54 C404.05,428.08 398.13,433.88 388.17,437.47 C381.6,439.83 377.32,442.04 374.77,444.29 C372.67,446.15 371.72,448.03 371.55,450.33 C371.42,452.09 371.55,452.96 372.5,457.63 C373.2,461.05 373.5,463.33 373.5,466 C373.5,480.79 365.57,493 343.32,511.39 C336.29,517.19 332.68,524.39 331.68,533.39 C330.9,540.39 331.54,547.12 333.64,559.59 L333.96,561.44 C336.11,574.09 336.76,579.51 336.5,586.02 C336.28,591.59 336.18,596.22 336.22,601 Z M95.9,601 L93.86,601 C94.54,597.18 95,592.2 95.47,585.02 C95.67,581.91 95.74,580.96 95.86,579.42 C97.16,561.88 99.9,552.28 107.36,546.22 C112.01,542.45 114.58,537.3 116.03,530.22 C116.54,527.7 116.73,526.35 117.36,521.05 C118.02,515.55 118.52,512.99 119.6,510.69 C121.05,507.6 123.42,506 126.99,506 C141.27,506 165.47,515.12 180.59,526.2 C189.25,532.55 201.85,539.52 212.33,543.31 C225.36,548.02 234.22,547.72 237.08,541.58 C238.78,537.94 239,537.47 239.73,535.81 C242.66,529.14 244.42,523.61 244.98,518.31 C245.21,516.14 245.22,514.08 245,512.11 C244.68,509.36 243.58,507.56 240.92,504.76 L239.6,503.39 C238.741304,502.509299 237.936509,501.577608 237.19,500.6 C236.251107,499.311071 235.41519,497.950196 234.69,496.53 L233.56,494.39 C231.94,491.29 230.88,489.79 229.44,488.83 C224.18,485.33 214.64,483.33 200.89,482 C197.880815,481.713195 194.867064,481.476496 191.85,481.29 L189.67,481.12 C180.1,480.39 174.55,479.56 170.61,477.92 C156.57,472.07 136,451.5 136,441 C136,435.66 137.74,431.47 141.47,426.87 C143.45,424.43 152.59,415.16 154.26,413.33 C158.78,408.36 164.42,403.79 171.94,398.67 C174.74,396.77 186.72,389.07 189.43,387.18 C191.689449,385.54792 193.810013,383.731727 195.77,381.75 C197.3,380.25 202.73,374.62 202.89,374.45 C210.07,367.15 215.59,362.89 222.63,360.07 C225.99,358.73 230.76,357.28 240.08,354.69 C244.005968,353.59416 247.932636,352.500826 251.86,351.41 C256.096714,350.222958 260.320301,348.989551 264.53,347.71 C284.93,341.47 298.53,335.63 305.32,329.27 C314.06,321.07 317.1,315.43 321.05,303.25 C323.07,297.03 324.14,294.21 326.12,290.53 C335.66,272.82 354.83,251.16 369.62,245.08 C383.77,239.25 389,233.34 389,227 C389,224.11 391.73,218.6 395.83,213.27 C400.59,207.07 406.48,201.91 412.58,199.09 C425.08,193.32 446.08,189 460,189 C465.32,189 469.83,187.5 476.42,184.11 C485.62,179.4 486.52,179 490,179 C500.42,179 522.06,176.45 535.76,173.03 L539.64,172.05 L543.11,171.16 C545.71,170.5 547.44,170.08 549.04,169.73 C552.94,168.87 555.8,168.5 558.62,168.56 C561.36,168.62 564.09,169.08 567.29,170.04 C571.85,171.41 581,169.14 590.16,164.36 C593.610871,162.57784 596.902884,160.503604 600,158.16 L600,160.56 C588.91,168.7 574.24,174.22 566.71,171.96 C564.078261,171.117653 561.341906,170.646448 558.58,170.56 C555.95,170.51 553.22,170.86 549.47,171.68 C546.344838,172.383799 543.234204,173.150622 540.14,173.98 L536.24,174.97 C522.38,178.43 500.58,181 490,181 C487.01,181 486.09,181.4 477.33,185.89 C470.48,189.4 465.72,191 460,191 C446.35,191 425.65,195.26 413.42,200.9 C407.64,203.57 402,208.52 397.42,214.48 C393.57,219.5 391,224.68 391,227 C391,234.27 385.2,240.82 370.38,246.92 C356.11,252.8 337.22,274.13 327.88,291.47 C325.98,295.02 324.93,297.75 322.95,303.87 C318.9,316.34 315.72,322.26 306.68,330.73 C299.6,337.37 285.81,343.3 265.11,349.62 C260.890327,350.902957 256.65674,352.139698 252.41,353.33 C248.481161,354.439439 244.547795,355.532782 240.61,356.61 C231.37,359.19 226.64,360.62 223.37,361.93 C216.64,364.62 211.32,368.73 204.32,375.85 C204.17,376 198.72,381.65 197.17,383.17 C195.130193,385.232784 192.922607,387.122611 190.57,388.82 C187.83,390.74 175.82,398.45 173.07,400.32 C165.67,405.36 160.13,409.84 155.74,414.67 C154.02,416.57 144.94,425.78 143.03,428.13 C139.56,432.39 138,436.16 138,441 C138,450.5 158,470.5 171.38,476.08 C175.05,477.61 180.48,478.42 189.83,479.13 C191.276266,479.242036 192.722942,479.348703 194.17,479.45 C197.41,479.68 199.24,479.82 201.1,480 C215.18,481.37 224.92,483.4 230.55,487.17 C232.37,488.37 233.57,490.08 235.35,493.46 L236.46,495.59 C237.139201,496.919219 237.921599,498.193125 238.8,499.4 C239.42,500.23 240.1,501 241.06,502.01 C241.29,502.25 242.16,503.17 242.38,503.38 C245.31,506.47 246.62,508.61 246.99,511.88 C247.23,514 247.22,516.21 246.98,518.52 C246.39,524.07 244.58,529.77 241.57,536.62 C240.83,538.29 240.61,538.77 238.91,542.42 C235.42,549.89 225.58,550.22 211.66,545.19 C200.99,541.33 188.23,534.27 179.41,527.81 C164.62,516.96 140.82,508 127,508 C122,508 120.6,511.02 119.36,521.29 C119.055059,524.419829 118.601211,527.533357 118,530.62 C116.47,538.12 113.7,543.66 108.63,547.78 C101.76,553.36 99.13,562.56 97.86,579.58 C97.75,581.1 97.68,582.05 97.48,585.15 C97.02,592.16 96.57,597.14 95.91,601 L95.9,601 Z M103.95,601 L102.93,601 C103.22,599.59 103.51,598.06 103.83,596.41 L104.88,590.79 C107.38,577.49 109.08,570.87 111.56,566.74 C113.26,563.9 115.24,561.24 119.61,555.71 C127.82,545.35 130.49,541.16 130.49,537 L130.47,535.31 C130.45,533.53 130.45,532.61 130.49,531.54 C130.7,526.49 131.96,523.34 135.13,522.14 C139.05,520.64 145.52,522.58 155.25,528.57 C164.81,534.45 172.78,539.27 181.16,544.23 C182.47,545.01 195.43,552.64 198.83,554.68 C200.976822,555.968737 203.116851,557.268755 205.25,558.58 C219.07,567.08 244.19,563.63 251.55,550.75 C255.15,544.47 256.09,542.23 259.33,533.43 C259.702844,532.398909 260.096256,531.375371 260.51,530.36 C261.598461,527.681173 262.958918,525.1211 264.57,522.72 C273.9,508.74 279.49,496.62 279.49,486 C279.49,482.34 280.24,479.38 282.85,471.15 C283.37,469.51 283.68,468.49 284,467.42 C287.64,455.19 287.04,448.3 279.71,443.42 C276.723975,441.398302 273.306107,440.103759 269.73,439.64 C262.53,438.71 255.24,440.81 245.82,445.52 C244.27,446.3 239.18,448.96 238.22,449.45 C236.811483,450.164172 235.430495,450.931387 234.08,451.75 L229.68,454.41 C218.06,461.33 209.28,463.59 196.87,460.49 C193.55,459.65 190.63,459.09 183.77,457.85 C170.52,455.46 165.07,454.1 160.44,451.39 C154.21,447.72 152.98,442.37 157.56,434.74 C161.586243,428.052095 166.437647,421.897128 172,416.42 C174.680441,413.767577 177.455575,411.212586 180.32,408.76 C180.25,408.81 186.48,403.46 188.14,401.99 C190.417659,399.997055 192.587407,397.884055 194.64,395.66 C202.34,387.2 207.42,382.3 214.72,377.09 C224.66,369.99 236.12,364.73 249.9,361.51 C286.93,352.87 300.9,348.81 308.73,343.58 C317.33,337.85 330.03,318.81 345.57,288.77 C350.79,278.67 357.84,270.37 366.7,263.06 C371.83,258.82 376.26,255.81 384.25,250.83 C391.67,246.21 393.87,244.69 395.63,242.67 C396.828346,241.187054 397.82067,239.54888 398.58,237.8 C399.19,236.5 401.45,231.33 401.58,231.03 C402.94,228.03 404.14,225.63 405.53,223.3 C412.06,212.33 421.56,205.3 436.93,202.5 C449.66,200.2 456.78,199.8 466.61,200.2 C469.86,200.33 470.74,200.36 472.21,200.34 C477.36,200.27 481.92,199.3 488.82,196.54 C509.56,188.24 527.57,184.5 548.01,184.5 C551.06,184.5 554.04,184.65 558.49,184.98 L560.58,185.14 C573.03,186.1 578.66,186.1 585.92,184.51 C590.867172,183.422694 595.618832,181.584756 600.01,179.06 L600.01,180.21 C595.668681,182.644108 590.991495,184.423325 586.13,185.49 C578.75,187.1 573.05,187.1 560.5,186.14 L558.42,185.98 C553.99,185.65 551.03,185.5 548.01,185.5 C527.71,185.5 509.81,189.22 489.2,197.46 C482.19,200.26 477.5,201.26 472.23,201.34 C470.73,201.36 469.84,201.33 466.57,201.2 C456.81,200.8 449.77,201.19 437.1,203.5 C422.04,206.23 412.78,213.08 406.39,223.81 C404.941316,226.274552 403.639061,228.822298 402.49,231.44 C402.37,231.72 400.1,236.91 399.48,238.23 C398.683126,240.062922 397.640198,241.778706 396.38,243.33 C394.52,245.46 392.31,246.99 384.78,251.68 C376.83,256.64 372.43,259.63 367.34,263.83 C358.58,271.06 351.61,279.26 346.45,289.23 C330.84,319.43 318.09,338.55 309.29,344.42 C301.31,349.74 287.32,353.81 250.12,362.49 C236.47,365.67 225.14,370.88 215.3,377.91 C208.08,383.07 203.03,387.92 195.38,396.34 C193.305306,398.588588 191.112193,400.724953 188.81,402.74 C187.14,404.22 180.9,409.57 180.97,409.51 C177.7,412.35 175.17,414.67 172.71,417.13 C167.212178,422.551282 162.417902,428.642399 158.44,435.26 C154.14,442.42 155.22,447.15 160.97,450.52 C165.44,453.15 170.85,454.51 184.21,456.91 C188.546073,457.623525 192.855453,458.490737 197.13,459.51 C209.24,462.54 217.77,460.35 229.19,453.55 L233.59,450.9 C235.25,449.9 236.55,449.17 237.79,448.55 C238.74,448.07 243.83,445.41 245.39,444.63 C254.98,439.83 262.43,437.69 269.88,438.65 C273.605581,439.131549 277.167005,440.477357 280.28,442.58 C288.1,447.79 288.73,455.1 284.98,467.71 C284.66,468.78 284.34,469.81 283.82,471.45 C281.25,479.57 280.51,482.49 280.51,486 C280.51,496.88 274.85,509.14 265.43,523.28 C263.854953,525.62431 262.524651,528.124072 261.46,530.74 C261.09,531.64 260.73,532.56 260.28,533.78 C257.03,542.63 256.07,544.91 252.44,551.25 C244.77,564.67 219.01,568.2 204.74,559.43 C202.615084,558.119535 200.481706,556.822841 198.34,555.54 C194.94,553.5 181.98,545.87 180.67,545.09 C172.29,540.12 164.31,535.31 154.75,529.43 C145.25,523.58 139.05,521.73 135.51,523.07 C132.83,524.09 131.71,526.89 131.51,531.58 C131.46559,532.81951 131.45892,534.060084 131.49,535.3 L131.51,537 C131.51,541.5 128.82,545.73 119.99,556.87 C116.07,561.82 114.12,564.46 112.44,567.26 C110.05,571.23 108.36,577.82 105.88,590.98 L104.83,596.6 L103.97,601 L103.95,601 Z M114.45,601 L113.45,601 C113.48,600.66 113.49,600.32 113.49,600 C113.49,587.61 121.97,566.43 132.65,556.63 C134.017757,555.374087 135.248014,553.97622 136.32,552.46 C137.408344,550.905574 138.371378,549.267079 139.2,547.56 C139.56,546.84 140.95,543.9 141.3,543.2 C144.52,536.91 148.14,536.66 158.27,543.59 C159.61,544.49 164.34,547.75 164.67,547.97 C167.29,549.77 169.34,551.17 171.37,552.53 C176.4,555.92 180.74,558.73 184.88,561.23 C199.21,569.9 210.37,574.5 218.99,574.5 C235.85,574.5 251.7,568.55 258.59,559.7 C260.18,557.66 261.79,554.53 263.65,550.07 C264.45,548.15 265.29,546.01 266.32,543.27 L269.06,535.94 C273.72,523.5 276.82,516.88 280.62,512.67 C288.52,503.88 295.49,476.67 295.49,460 C295.49,458.1 295.66,456.89 296.51,451.73 C296.88,449.53 297.09,448.13 297.25,446.66 C297.88,441.15 297.46,437.2 295.57,434.27 C290.97,427.17 275.87,425.04 257.11,429.49 C250.603376,430.956745 244.258802,433.067137 238.17,435.79 C233,438.16 221.06,445.53 221.67,445.19 C214.95,448.83 208.7,449.34 196.87,446.49 C167.32,439.35 166.44,437.87 181.61,419.68 C199.05,398.75 228.73,373.5 237.99,373.5 C247.91,373.5 291.83,361.52 303.77,355.55 C313.23,350.82 328.09,334.37 340.59,317.7 C341.3,316.75 354.09,296.1 359.79,288.1 C369.14,274.97 378.01,265.55 386.74,260.57 C394.03,256.4 399.9,250.29 405.54,241.84 C407.47,238.94 416.06,224.19 418.27,221.43 C419.81,219.5 421.27,218.22 422.79,217.54 C436.86,211.29 447.01,208.5 461.99,208.5 L490.99,208.5 C495.04,208.5 498.35,208.1 513.92,206 L518.22,205.43 C528.14,204.13 534.79,203.5 539.99,203.5 C541.65,203.5 542.94,203.51 546.02,203.54 C564.63,203.73 574.57,203.06 590.88,199.51 C593.98,198.84 597.01,197.73 599.99,196.2 L599.99,197.32 C597.166916,198.743164 594.177099,199.808077 591.09,200.49 C574.69,204.05 564.69,204.73 546.01,204.54 C542.93,204.51 541.65,204.5 539.99,204.5 C534.84,204.5 528.23,205.13 518.35,206.42 L514.05,207 C498.41,209.11 495.11,209.5 490.99,209.5 L461.99,209.5 C447.18,209.5 437.15,212.25 423.19,218.46 C421.85,219.06 420.5,220.24 419.05,222.06 C416.89,224.74 408.33,239.45 406.37,242.39 C400.65,250.96 394.67,257.19 387.24,261.43 C378.67,266.33 369.88,275.66 360.61,288.67 C354.93,296.64 342.14,317.31 341.39,318.3 C328.79,335.1 313.87,351.62 304.21,356.45 C292.15,362.48 248.07,374.5 237.99,374.5 C229.17,374.5 199.6,399.65 182.37,420.32 C167.77,437.84 168.18,438.53 197.11,445.52 C208.71,448.32 214.71,447.82 221.2,444.32 C220.53,444.67 232.51,437.29 237.76,434.88 C243.17,432.4 249.36,430.29 256.87,428.51 C276,423.98 291.52,426.16 296.41,433.73 C298.46,436.9 298.89,441.05 298.25,446.77 C298.046065,448.486418 297.795975,450.197038 297.5,451.9 C296.66,456.98 296.49,458.19 296.49,460 C296.49,476.9 289.46,504.33 281.36,513.33 C277.68,517.42 274.6,523.98 269.99,536.29 C269.64,537.22 267.79,542.23 267.26,543.62 C266.22,546.38 265.38,548.52 264.58,550.46 C262.68,554.99 261.03,558.19 259.38,560.31 C252.28,569.44 236.13,575.5 218.99,575.5 C210.13,575.5 198.84,570.85 184.36,562.08 C180.21,559.57 175.86,556.76 170.81,553.36 C168.566189,551.850539 166.329498,550.330523 164.1,548.8 L157.7,544.41 C148.02,537.78 145.09,537.99 142.2,543.66 C141.85,544.34 140.46,547.28 140.1,548.01 C139.248166,549.762446 138.258383,551.44441 137.14,553.04 C136.02,554.61 134.77,556.04 133.33,557.37 C122.86,566.97 114.49,587.88 114.49,600 L114.46,601 L114.45,601 Z M84.8,601 L83.7,601 C84.87,598.48 85.49,595.8 85.49,593 C85.49,573 90.32,550.96 97.64,543.65 C102.81,538.47 105.41,535.27 107.54,530.91 C110.18,525.5 111.49,518.91 111.49,510 C111.49,503.18 112.63,498.41 114.86,494.93 C116.6,492.23 118.46,490.72 123.77,487.41 C125.138703,486.579992 126.442446,485.647314 127.67,484.62 C132.28,480.66 134.25,478.42 135.39,475.21 C136.82,471.19 136.32,466.17 133.53,459.19 C132.377141,456.415989 131.044303,453.720249 129.54,451.12 L128.61,449.42 C127.667854,447.786895 126.787236,446.119058 125.97,444.42 C120.81,433.71 122.2,425.52 133.65,414.64 C141.964043,406.714707 150.932583,399.505754 160.46,393.09 C164.42,390.4 177.26,382.29 179.7,380.59 C181.69,379.19 184.03,377.29 187.47,374.29 C187.45,374.29 194.7,367.9 196.94,365.99 C201.91,361.73 206.03,358.49 209.99,355.84 C214.71,352.69 218.96,350.56 222.86,349.52 C235.64,346.11 238.46,345.34 244.63,343.55 C257.18,339.91 266.59,336.65 272.77,333.55 C275.173492,332.403039 277.673101,331.46945 280.24,330.76 C288.9,328.1 292.26,326.66 297.21,322.66 C303.99,317.2 310.28,308.41 316.54,294.79 C332.51,260.02 335.62,255.4 348.69,245.6 C351.83,243.24 355.06,241.5 360.12,239.2 L362.45,238.16 C374.38,232.81 379.32,229.23 383.55,220.78 C385.43,217.01 386.03,214.49 386.92,208.51 C387.7,203.32 388.4,200.95 390.45,198.26 C393.02,194.86 397.48,191.99 404.81,189.25 C408.18,187.99 412.17,186.75 416.86,185.52 C433.19,181.22 442.14,180.16 456.46,179.71 C463.36,179.49 465.96,179.15 469.12,177.71 C470.31,177.17 471.48,176.48 472.7,175.6 C476.4,172.9 480.84,171.06 485.94,169.93 C491.65,168.66 496.63,168.39 504.64,168.48 L506.99,168.5 C509.81,168.5 513.79,167.5 526.69,163.81 C537.52,160.73 542.64,159.5 545.99,159.5 C546.81,159.5 547.89,159.63 549.54,159.91 L554.55,160.81 C564.37,162.49 571.99,162.7 579.7,160.6 C587.68,158.42 594.5,153.83 599.99,146.36 L599.99,148 C594.52,155.04 587.78,159.42 579.96,161.55 C572.08,163.7 564.33,163.49 554.38,161.78 L549.38,160.88 C547.78,160.62 546.74,160.49 545.99,160.49 C542.79,160.49 537.67,161.71 526.25,164.97 C513.9,168.5 509.95,169.49 506.99,169.49 L504.63,169.47 C496.69,169.37 491.78,169.64 486.16,170.89 C481.19,172 476.86,173.79 473.28,176.39 C472.108799,177.255677 470.852286,177.999533 469.53,178.61 C466.21,180.11 463.53,180.48 456.49,180.7 C442.24,181.14 433.36,182.2 417.12,186.47 C413.077664,187.504012 409.089382,188.738877 405.17,190.17 C398,192.87 393.68,195.63 391.24,198.85 C389.34,201.37 388.66,203.61 387.91,208.65 C387.01,214.73 386.38,217.33 384.44,221.21 C382.218412,225.768084 378.898942,229.702653 374.78,232.66 C371.66,234.92 368.83,236.39 362.85,239.06 L360.54,240.1 C355.53,242.37 352.36,244.09 349.29,246.39 C336.39,256.07 333.36,260.56 317.44,295.19 C311.13,308.95 304.74,317.87 297.84,323.44 C292.76,327.54 289.31,329.01 280.54,331.71 C278.021494,332.403773 275.568747,333.317279 273.21,334.44 C266.97,337.56 257.51,340.84 244.91,344.5 C237.669571,346.584597 230.402287,348.574766 223.11,350.47 C219.34,351.48 215.18,353.57 210.55,356.66 C206.036557,359.755656 201.712179,363.118319 197.6,366.73 C195.36,368.65 188.12,375.03 188.12,375.03 C185.617681,377.28643 183.000886,379.412576 180.28,381.4 C177.82,383.12 164.96,391.23 161.02,393.9 C151.535118,400.285575 142.606698,407.461095 134.33,415.35 C123.2,425.93 121.9,433.65 126.86,443.98 C127.670999,445.662247 128.54495,447.313413 129.48,448.93 L130.42,450.63 C131.939706,453.262726 133.285902,455.991864 134.45,458.8 C137.33,466 137.85,471.26 136.34,475.53 C135.12,478.96 133.06,481.3 128.32,485.37 C127.18,486.34 126,487.17 123.02,489.04 C119.1,491.49 117.33,492.93 115.71,495.46 C113.58,498.76 112.49,503.35 112.49,509.99 C112.49,519.04 111.15,525.78 108.44,531.33 C106.25,535.82 103.59,539.1 98.34,544.34 C91.27,551.41 86.49,573.24 86.49,592.99 C86.49,595.79 85.91,598.47 84.79,600.99 L84.8,601 Z M367.34,601 L366.33,601 L365.23,595.2 C362.15,578.94 361.18,569 362.49,557.94 C363.19,552.14 363.26,548.26 363.04,542.64 C362.86,538.19 362.87,536.96 363.23,535.01 C364.01,530.71 366.67,526.48 373.62,518.67 C382.69,508.47 385.88,503.26 393.42,488.52 C394.77,485.88 395.75,484.05 396.8,482.22 C397.7,480.64 398.62,479.16 399.57,477.72 C402.71,473.02 406.6,469.3 416.41,460.91 C427.63,451.31 431.91,447.05 434.54,441.78 C435.24,440.38 435.84,438.98 436.47,437.38 C436.980794,436.035239 437.477488,434.685165 437.96,433.33 C441.59,423.39 445.97,419.4 460.86,415.52 C465.85,414.22 481.41,410.39 482.24,410.18 C498.43,406.08 507.57,402.82 515.72,397.58 C521.58,393.81 521.56,393.82 543.38,381.05 L545.98,379.53 C556.21,373.53 563.08,369.33 568.71,365.58 C571.718508,363.587043 574.65377,361.485663 577.51,359.28 C579.642849,357.598633 581.766216,355.905273 583.88,354.2 C588.864271,350.20683 594.269633,346.769798 600,343.95 L600,345.07 C594.496867,347.805466 589.303705,351.12453 584.51,354.97 C584.69,354.83 579.75,358.81 578.13,360.07 C575.257693,362.292902 572.305755,364.410959 569.28,366.42 C563.63,370.18 556.75,374.38 546.5,380.39 L543.9,381.92 C522.1,394.67 522.12,394.66 516.27,398.42 C508,403.74 498.78,407.03 482.49,411.15 C481.66,411.36 466.1,415.19 461.13,416.48 C453.1,418.58 447.98,420.98 444.68,423.98 C442.02,426.4 440.68,428.84 438.91,433.68 L437.41,437.75 C436.828211,439.270357 436.174132,440.762057 435.45,442.22 C432.73,447.67 428.41,451.97 417.07,461.67 C407.34,469.99 403.47,473.69 400.42,478.27 C399.456695,479.721978 398.542838,481.206162 397.68,482.72 C396.63,484.53 395.67,486.35 394.33,488.97 C386.75,503.78 383.51,509.05 374.37,519.33 C367.54,527.03 364.97,531.11 364.22,535.19 C363.88,537.04 363.88,538.23 364.05,542.59 C364.27,548.27 364.19,552.19 363.5,558.06 C362.2,568.98 363.16,578.85 366.23,595.01 L367.35,601 L367.34,601 Z M290.75,601 L288.65,601 L290.04,596.7 C291.08,593.4 291.97,589.92 292.72,586.3 C295.37,573.57 295.99,562.67 295.99,545 C295.99,539.29 294.13,535.25 291.86,535.25 C288.92,535.25 284.9,540.86 280.93,552.33 C271.14,580.68 258.3,594 238,594 C215.58,594 208.74,592.65 189.58,583.91 C186.340484,582.423017 183.194647,580.739894 180.16,578.87 C177.21,577.07 167.38,570.3 165.32,569.15 C161.12,566.79 158.32,566.44 155.6,568.16 C154.97,568.56 154.34,569.07 153.7,569.71 C152.328799,571.067945 150.890324,572.356231 149.39,573.57 C148.380808,574.396796 147.360718,575.2102 146.33,576.01 L145.33,576.81 C137.01,583.43 134,588.18 134,598 C134,599.02 133.98,600.01 133.93,601 L131.93,601 C131.98,600.01 132,599.02 132,598 C132,587.48 135.33,582.22 144.09,575.24 C144.754091,574.703455 145.420766,574.170116 146.09,573.64 C146.92,573 147.52,572.51 148.12,572.03 C149.57178,570.853982 150.963535,569.605741 152.29,568.29 C153.03,567.56 153.77,566.95 154.53,566.47 C158,564.27 161.53,564.72 166.3,567.4 C168.45,568.61 178.33,575.4 181.2,577.16 C184.170133,578.989448 187.249195,580.635844 190.42,582.09 C209.29,590.7 215.85,592 238,592 C257.25,592 269.49,579.3 279.06,551.67 C283.3,539.42 287.72,533.25 291.87,533.25 C295.67,533.25 298,538.31 298,545 C298,562.8 297.37,573.8 294.7,586.7 C293.93,590.4 293.02,593.93 291.95,597.3 C291.55,598.6 291.15,599.83 290.76,601 L290.75,601 Z M141.5,601 L142,600.06 C144.379645,595.742887 146.558634,591.318173 148.53,586.8 C151.26,580.51 154.31,577.16 157.77,576.28 C161.51,575.33 164.92,577.02 170.33,581.41 C175.76,585.81 176.4,586.27 178.06,586.51 C179.66,586.73 182.34,587.65 186.92,589.46 C188.22,589.96 197.7,593.81 200.77,595.01 C203.84,596.21 206.62,597.26 209.26,598.19 C212.36,599.29 215.24,600.23 217.91,601 L214.46,601 C212.7,600.44 210.86,599.82 208.92,599.13 C206.066334,598.112579 203.229297,597.049107 200.41,595.94 C197.33,594.74 187.84,590.9 186.55,590.39 C182.05,588.61 179.4,587.71 177.92,587.49 C175.98,587.22 175.39,586.79 169.7,582.19 C164.53,577.99 161.34,576.41 158.01,577.25 C154.91,578.03 152.07,581.17 149.45,587.2 C147.397996,591.906108 145.122062,596.51137 142.63,601 L141.5,601 Z M254.39,601 C258.552592,599.741807 262.396078,597.603505 265.66,594.73 C267.21,593.37 268.98,591.27 271,588.44 C272.05,586.98 273.15,585.34 274.41,583.4 C275.251934,582.105533 276.085286,580.805505 276.91,579.5 L277.38,578.75 L278.31,577.28 C279.339919,575.624911 280.423835,574.00404 281.56,572.42 C282.61,570.99 283.38,570.19 284,569.96 C285.02,569.59 285.49,570.44 285.49,572 L285.5,574.11 C285.55,581.02 285.42,585.43 284.8,590.44 C284.404033,594.037921 283.605708,597.580069 282.42,601 L281.35,601 C282.584993,597.549078 283.407376,593.964162 283.8,590.32 C284.42,585.36 284.55,580.99 284.5,574.12 L284.49,572 C284.49,571.03 284.41,570.88 284.34,570.9 C283.98,571.04 283.29,571.75 282.37,573 C281.244288,574.571051 280.170378,576.178581 279.15,577.82 L278.23,579.28 L277.75,580.03 C276.919063,581.338193 276.085728,582.644862 275.25,583.95 C273.99,585.9 272.87,587.55 271.81,589.03 C269.75,591.91 267.94,594.07 266.31,595.48 C263.667324,597.817341 260.643536,599.684378 257.37,601 L254.39,601 Z M70.67,601 L69.3,601 C72.67,597.57 74.49,592.67 74.49,586 C74.49,567.4 74.45,568.65 75.51,565.23 C76.11,563.3 77.01,561.49 78.78,558.6 C79.2,557.9 83.7,550.8 85.56,547.74 C88.6,542.77 96.6,531.24 97.77,529.18 C101.25,523.1 102.49,517.12 102.49,505 C102.49,497.15 104.99,490.8 110.59,481.56 L113.43,476.93 C114.310783,475.492658 115.141285,474.025103 115.92,472.53 C117.54,469.38 118.4,466.75 118.54,464.25 C118.74,460.47 117.24,456.96 113.64,453.35 C108.51,448.23 105.04,447.92 102.44,451.5 C100.32,454.42 98.96,459.24 97.38,467.97 C97.18,469 96.56,472.57 96.56,472.54 C95.73,477.21 95.16,479.87 94.46,482.14 C93.11,486.56 90.76,489.75 86.1,494.4 L82.84,497.6 C76.46,503.99 73.16,509.11 71.48,517.1 L70.32,522.62 C69.45,526.72 68.76,529.66 67.99,532.56 C64.32,546.3 58.34,558.53 45.4,577.28 C37.72,588.42 34.35,596.15 34.48,601 L33.48,601 C33.36,595.84 36.83,587.95 44.58,576.72 C57.45,558.05 63.38,545.92 67.02,532.3 C67.79,529.42 68.47,526.5 69.34,522.41 L70.5,516.9 C72.23,508.68 75.63,503.4 82.14,496.9 C82.77,496.26 84.98,494.1 85.39,493.69 C89.96,489.15 92.21,486.07 93.51,481.85 C94.3874851,478.733871 95.0787075,475.568273 95.58,472.37 L96.39,467.8 C98.01,458.9 99.39,454 101.63,450.91 C104.63,446.76 108.83,447.13 114.34,452.65 C118.14,456.45 119.76,460.23 119.54,464.31 C119.39,466.97 118.49,469.72 116.81,472.99 C116.022008,474.505458 115.181499,475.993025 114.29,477.45 L111.45,482.08 C105.93,491.18 103.49,497.38 103.49,505 C103.49,517.28 102.21,523.43 98.64,529.68 C97.44,531.78 89.43,543.33 86.42,548.26 C84.55,551.32 80.05,558.44 79.64,559.12 C77.91,561.94 77.04,563.69 76.47,565.52 C75.45,568.8 75.49,567.62 75.49,586 C75.49,592.52 73.79,597.44 70.67,601 Z M310.09,1 L311.15,1 C310.78,1.9 310.38,2.83 309.95,3.82 C306.05,12.88 304.5,18.97 304.5,29 C304.5,36.64 302.4,40.6 297.86,42.05 C294.4,43.15 292.14,43.03 280.29,41.62 C268.74,40.26 261.12,40.04 252.13,41.48 C245.89,43.97 226.22,48.5 220,48.5 C208.85,48.5 183.24,45.62 165.88,41.49 C160.126483,40.0019334 154.016025,40.895971 148.93,43.97 C144.88,46.3 141.84,49 135.03,55.94 C128.75,62.33 125.5,65.17 121.23,67.44 C114.14,71.23 110.01,75.09 107.83,79.71 C106.01,83.56 105.5,87.55 105.5,95 C105.5,99.4 102.85,101.69 96.05,104.74 C96.15,104.69 93.08,106.05 92.21,106.45 C83.43,110.51 79.5,114.74 79.5,123 C79.5,135.52 74.64,142.22 62.16,150.96 L57.6,154.1 C55.7,155.4 54.3,156.4 52.93,157.4 C52.01,158.08 51.14,158.74 50.31,159.4 C43.15,165.02 39.31,173.94 34.75,192.68 C34.12,195.25 31.45,206.68 30.68,209.82 C29.1310802,216.311533 27.3970396,222.757495 25.48,229.15 C24.11,233.65 20.98,244.22 20.52,245.68 C19.47,249.08 18.88,250.62 18.06,252 C17.24,253.4 11.21,261.08 5.42,270.27 L5.68434189e-14,278.98 L5.68434189e-14,277.08 L4.58,269.73 C8.53276499,263.483776 12.7396217,257.402016 17.19,251.5 C16.89,252 18.54,248.7 19.57,245.38 C20.02,243.94 23.15,233.37 24.52,228.85 C26.35,222.82 27.96,216.76 29.71,209.58 C30.47,206.45 33.15,195.02 33.77,192.44 C38.39,173.49 42.29,164.42 49.69,158.61 C50.53,157.94 51.41,157.28 52.34,156.6 C53.72,155.58 55.14,154.59 57.04,153.28 L61.58,150.14 C73.83,141.57 78.5,135.13 78.5,123 C78.5,114.26 82.7,109.74 91.79,105.55 C92.67,105.14 95.75,103.78 95.64,103.82 C102.1,100.92 104.5,98.85 104.5,95 C104.5,87.4 105.03,83.3 106.92,79.29 C109.21,74.45 113.49,70.44 120.76,66.56 C124.91,64.35 128.11,61.56 134.91,54.63 C141.19,48.23 144.27,45.5 148.43,43.1 C153.738839,39.8940062 160.114905,38.9604837 166.12,40.51 C183.39,44.63 208.92,47.5 220,47.5 C226.1,47.5 245.73,42.97 251.92,40.5 C261.04,39.04 268.75,39.25 280.41,40.63 C292.04,42.01 294.31,42.13 297.56,41.1 C301.62,39.8 303.5,36.25 303.5,29 C303.5,18.9 305.06,12.7 310.1,1 L310.09,1 Z M335.21,1 L336.21,1 C336.26,6.62 336.47,12.48 336.86,20.4 C337.33,30.1 337.5,34.97 337.5,42 C337.5,51.81 332.82,59.46 324.4,65.16 C317.87,69.59 309.46,72.62 300.07,74.49 C296.33,75.03 290.65,75.05 277.39,74.72 C270.65,74.55 268.04,74.5 265,74.5 C262.23,74.5 260.03,74.93 257.37,75.86 C256.49,76.16 252.82,77.6 251.79,77.97 C245.24,80.32 238.2,81.5 227,81.5 C218.9,81.5 213.42,80.12 204.54,76.6 L201.36,75.35 C188.81,70.48 180.09,70.2 164.18,76.47 C153.03,80.86 146.05,85.67 141.9,91.28 C138.75,95.54 137.57,99.08 135.96,107.08 C134.74,113.17 134.03,115.82 132.46,119.21 C130.81,122.74 128.49,125.02 125.39,126.43 C123.06,127.5 121.04,127.93 116.07,128.62 C107.03,129.89 103.3,131.71 100.46,138.2 C96.75,146.68 92.74,152.07 86.24,157.96 C83.84,160.14 73.1,168.98 70.33,171.38 C62.13,178.48 56.48,188.75 51.63,203.35 C50.4630237,206.892687 49.372769,210.460187 48.36,214.05 C48.35,214.1 46.1,222.02 45.48,224.15 C36.99,253 27.6,277.1 19.35,285.35 C16.55,288.15 14.29,290.99 8.95,298.31 C5.55,302.99 2.72,306.56 0,309.41 L0,307.86 C2.74,304.88 5.73,301.04 9.48,295.89 C13.51,290.37 15.8,287.49 18.65,284.65 C26.72,276.57 36.09,252.51 44.52,223.85 C45.14,221.75 47.38,213.82 47.4,213.77 C48.61,209.53 49.61,206.24 50.68,203.03 C55.58,188.28 61.31,177.87 69.68,170.63 C72.46,168.21 83.18,159.38 85.57,157.23 C91.97,151.43 95.89,146.14 99.54,137.8 C101.22,133.97 103.59,131.49 106.74,129.94 C109.14,128.77 111.38,128.27 116.27,127.58 C120.81,126.95 122.77,126.53 124.97,125.52 C127.86,124.21 130,122.1 131.55,118.79 C133.08,115.49 133.78,112.89 134.98,106.89 C136.62,98.75 137.83,95.1 141.09,90.69 C145.37,84.9 152.5,79.99 163.82,75.53 C179.97,69.17 188.95,69.46 201.72,74.42 L204.91,75.68 C213.68,79.15 219.04,80.5 227,80.5 C238.09,80.5 245.02,79.34 251.46,77.03 C252.46,76.67 256.14,75.23 257.04,74.92 C259.585817,73.9698838 262.282689,73.4887836 265,73.5 C268.05,73.5 270.67,73.55 279.07,73.76 C290.6,74.05 296.27,74.03 299.9,73.51 C309.15,71.66 317.44,68.68 323.84,64.34 C332,58.8 336.5,51.46 336.5,42 C336.5,35 336.33,30.14 335.8,19.3 C335.45,12.04 335.25,6.47 335.21,1 Z M93.87,1 L95.91,1 C95.21,5 94.3,7.82 92.88,10.47 C90.55,14.85 90.03,16.22 87.62,23.5 C87.0858817,25.2179329 86.4377766,26.8983289 85.68,28.53 C83.44,33.19 79.76,37.33 72.61,42.79 C64.6,48.92 58.34,59.34 52.58,74.34 C50.18,80.57 43.83,99.97 42.94,102.35 C40.25,109.51 36.38,115.05 27.31,126.03 L24.63,129.27 C18.61,136.61 15.28,141.34 12.91,146.42 C10.61,151.36 5.79,156.32 6.39488462e-14,160.57 L6.39488462e-14,158.17 C5.14,154.23 9.1,149.87 11.1,145.57 C13.56,140.3 16.97,135.47 23.08,128.01 L25.76,124.75 C34.7,113.95 38.48,108.53 41.06,101.65 C41.94,99.32 48.3,79.91 50.71,73.62 C56.6,58.31 63.01,47.62 71.39,41.21 C78.31,35.91 81.79,32.01 83.87,27.66 C84.52,26.31 85.03,24.96 85.72,22.87 C88.17,15.47 88.72,14.04 91.12,9.53 C92.4939492,6.85493125 93.4227883,3.97384108 93.87,1 Z M102.94,1 L103.96,1 C102.3,9.3 101.05,13.67 99.42,16.26 C97.8427498,18.8863422 96.4719574,21.6312704 95.32,24.47 C94.05,27.47 92.88,30.67 91.82,33.87 C91.44,34.99 91.12,36.03 89.41,39.26 C84.9786184,43.5350156 80.7057386,47.9713388 76.6,52.56 C73.12,56.52 70.65,59.83 69.45,62.22 C68.5,64.12 67.39,68.21 65.84,75.19 C65.2,78.09 62.19,92.34 61.33,96.26 C57.7,112.71 54.7,122.95 51.43,128.26 C43.77,140.71 40.79,143.97 14.35,169.36 C10.0548678,173.5807 5.23145901,177.227668 5.68434189e-14,180.21 L5.68434189e-14,179.06 C4.96389623,176.165253 9.54899928,172.665123 13.65,168.64 C40.05,143.31 42.97,140.09 50.57,127.74 C53.77,122.56 56.75,112.37 60.35,96.04 C61.21,92.13 64.22,77.88 64.86,74.98 C66.43,67.89 67.56,63.78 68.56,61.78 C69.8,59.28 72.32,55.92 75.85,51.89 C76.75,50.86 77.71,49.79 78.71,48.71 C81.11,46.11 83.67,43.49 86.24,40.95 C87.14,40.07 87.97,39.25 89.61,37.55 C90.9535653,32.9785104 92.5493434,28.4849594 94.39,24.09 C95.5677837,21.2021151 96.9686859,18.4103409 98.58,15.74 C100.1,13.3 101.32,9.03 102.94,1 Z M83.71,1 L84.81,1 C82.72,5.74 78.78,9.92 73.39,13.3 C66.19,17.82 56.89,20.5 49,20.5 C40.1,20.5 37.2,27.5 37.26,42.02 C37.26,43.72 37.3,45.19 37.38,48.01 C37.48,51.31 37.5,52.46 37.5,54 C37.5,59.73 36.74,65.3 35.49,70.5 C34.9010582,72.8608257 34.1833177,75.1876404 33.34,77.47 C31.0243134,82.7644377 28.6909671,88.0511338 26.34,93.33 C19.789192,107.990628 13.1557532,122.614194 6.44,137.2 C4.71610115,141.035834 2.55512869,144.659825 4.26325641e-14,148 L4.26325641e-14,146.35 C2.16768069,143.355121 4.02712921,140.148829 5.55,136.78 C14.0665823,118.237001 22.450131,99.6331897 30.7,80.97 C31.23,79.77 31.69,78.74 33.14,75.07 C35.3420456,68.262488 36.4755035,61.1547624 36.5,54 C36.5,52.48 36.47,51.34 36.38,48.05 C36.3,45.22 36.26,43.74 36.26,42.04 C36.23,35.25 36.79,30.42 38.33,26.7 C40.27,22.02 43.72,19.51 49,19.51 C56.7,19.51 65.81,16.88 72.86,12.46 C77.93,9.27 81.66,5.38 83.7,1 L83.71,1 Z M366.34,1 L367.35,1 C369.21,11.02 369.53,13.67 369.67,19.3 C370.84219,28.5330476 370.966313,37.8690528 370.04,47.13 C369.08,55.91 366.94,63.14 363.41,68.28 C352.07,84.78 323.61,97.5 297,97.5 C291.91,97.5 286.53,97.78 280.69,98.33 C272.537174,99.1418408 264.410258,100.195639 256.32,101.49 C234.76,104.75 228.66,105.5 220,105.5 C213.08,105.5 207.8,104.45 198.31,101.6 L195.53,100.77 C194.14,100.36 192.99,100.03 191.88,99.75 C183.88,97.7 177.66,97.71 170.18,100.47 C166.174337,101.897809 162.884188,104.832751 161.01,108.65 C159.41,111.7 158.51,114.71 156.99,121.48 C155.49,128.12 154.65,131 153,134.12 C151.021868,138.155006 147.452898,141.184101 143.15,142.48 C139.930225,143.466705 136.759879,144.608029 133.65,145.9 C127.1,148.7 123.55,151.47 119.85,156.37 C118.52,158.12 118.82,157.67 114.42,164.27 C112.44,167.24 109.76,170.07 105.94,173.41 C103.93,175.17 95.23,182.24 93.06,184.11 C85.69,190.46 80.48,196.25 76.43,203.25 C72.21,210.55 68.63,221.55 65.15,236.51 C64.28,240.24 63.43,244.15 62.51,248.65 L61.33,254.45 L60.24,259.9 C58.44,268.86 57.47,273.18 56.47,276.16 C49.67,296.6 39.21,318.32 29.34,327.36 C24.23,332.06 21.24,334.43 18.24,336.22 C17.34,336.76 16.4,337.26 15.32,337.79 C14.88,338.01 5.72,342.19 1.22,344.45 L0,345.07 L0,343.94 L0.78,343.55 C5.3,341.29 14.45,337.11 14.88,336.9 C15.8464414,336.424004 16.7938365,335.910275 17.72,335.36 C20.66,333.61 23.6,331.27 28.66,326.63 C38.37,317.73 48.76,296.12 55.53,275.84 C56.5,272.92 57.47,268.62 59.26,259.71 L60.36,254.25 C61.5211572,248.240022 62.7947137,242.252307 64.18,236.29 C67.68,221.23 71.28,210.15 75.57,202.75 C79.68,195.64 84.97,189.77 92.4,183.35 C94.59,181.47 103.28,174.4 105.28,172.65 C109.05,169.37 111.67,166.6 113.58,163.72 C118.01,157.08 117.7,157.54 119.05,155.76 C122.85,150.73 126.55,147.85 133.26,144.98 C135.87,143.86 139,142.74 142.85,141.52 C146.900361,140.306387 150.260424,137.457402 152.12,133.66 C153.71,130.64 154.54,127.81 156.15,120.67 C157.56,114.4 158.47,111.34 160.13,108.19 C162.115031,104.152437 165.5941,101.046381 169.83,99.53 C177.53,96.7 183.93,96.69 192.13,98.78 C193.25,99.07 194.41,99.39 195.81,99.81 L199.54,100.92 C208.01,103.46 213.2,104.5 220,104.5 C228.59,104.5 234.67,103.75 256.18,100.5 C264.283502,99.2019976 272.423755,98.1448653 280.59,97.33 C286.47,96.79 291.88,96.5 297,96.5 C323.3,96.5 351.45,83.92 362.59,67.72 C366.01,62.74 368.09,55.66 369.05,47.02 C369.89,39.28 369.78,31 369.07,23.12 C368.912296,21.4098924 368.722262,19.7029204 368.5,18 C368.5,13.53 368.2,11.06 366.34,1 Z M18.88,1 L19.91,1 C18,8.57 17.15,11.18 14.46,17.2 C12.51,21.57 11.79,26.39 12.04,32.09 C12.24,36.42 12.75,39.79 14.32,48.22 C15.41,54.1 15.89,56.99 16.26,60.42 C17.22,69.32 16.5,76.5 13.46,83.21 C9.27190077,92.4279396 4.78282457,101.506146 5.15143483e-14,110.43 L5.15143483e-14,108.31 C4.43917271,99.9331547 8.62112739,91.42251 12.54,82.79 C15.51,76.27 16.21,69.26 15.26,60.52 C14.9,57.12 14.42,54.26 13.33,48.4 C11.76,39.93 11.23,36.52 11.04,32.13 C10.78,26.29 11.52,21.32 13.54,16.8 C16.18,10.9 17.02,8.33 18.88,1 Z M299.35,1 C298.041663,4.88168612 296.398829,8.64246999 294.44,12.24 C291.88,16.94 290.43,20.69 289.58,24.22 L289.18,26.02 L288.9,27.47 C288.801295,28.2042759 288.549164,28.9095596 288.16,29.54 C287.42,30.57 286.23,30.82 283.03,30.79 C283.95,30.79 273.18,30.5 268,30.5 C257.8,30.5 249.55,31.32 238.54,33.06 C221.67,35.72 220.81,35.83 214.88,35.58 C212.184823,35.4709411 209.506111,35.1059667 206.88,34.49 C189.18,30.33 160.7,28.63 152.16,31.48 C149.44,32.38 146.28,34.28 142.64,37.07 C140.39141,38.8132129 138.209838,40.641197 136.1,42.55 C134.7,43.8 126.93,51.05 125.32,52.39 C123.87,53.59 117.14,59.81 116.47,60.41 C114.987573,61.7494225 113.470389,63.0498666 111.92,64.31 C106.93,68.34 103.02,70.51 100,70.51 C96.48,70.56 95.68,70.51 94.86,70.11 C93.73,69.55 93.36,68.39 93.73,66.54 C94.47,62.91 98.2,55.7 106.57,41.74 C112.26,32.26 115.99,23.74 118.35,15.54 C119.8,10.5 120.29,8.14 121.32,1 L122.33,1 C121.28,8.3 120.79,10.7 119.32,15.82 C116.93,24.1 113.16,32.71 107.42,42.26 C99.12,56.1 95.42,63.27 94.72,66.74 C94.42,68.19 94.64,68.88 95.31,69.21 C95.91,69.51 96.66,69.56 98.79,69.51 C102.71,69.51 106.48,67.41 111.29,63.53 C112.69,62.4 114.16,61.14 115.8,59.67 C116.46,59.08 123.21,52.84 124.68,51.62 C126.27,50.29 134.02,43.07 135.43,41.8 C137.83,39.65 139.98,37.84 142.03,36.27 C145.75,33.42 149,31.47 151.84,30.53 C160.6,27.61 189.25,29.31 207.11,33.52 C209.68,34.12 212.25,34.47 214.92,34.58 C220.76,34.83 221.62,34.72 238.39,32.07 C249.44,30.32 257.75,29.5 267.99,29.5 C273.19,29.5 283.98,29.8 283.04,29.79 C285.91,29.82 286.88,29.62 287.34,28.96 C287.57,28.64 287.74,28.16 287.92,27.26 L288.2,25.83 L288.6,23.98 C289.48,20.38 290.96,16.54 293.56,11.76 C295.43,8.33 297,4.76 298.29,1 L299.35,1 Z M290.76,1 C284.85,18.94 281.21,23 271,23 C266.5,23 260.78,23.32 242.31,24.5 L240.78,24.6 C225.18,25.59 217.31,26 212,26 C206.65,26 198.76,25.04 183.14,22.72 L181.6,22.49 C163.18,19.75 157.47,19 153,19 C148.55,19 145.7,20.01 142.04,22.34 C141.94,22.4 140.24,23.51 139.74,23.81 C137.31,25.31 135.42,26 133,26 C130.2,26 128.89,24.54 128.89,21.78 C128.89,20.74 129.05,19.49 129.39,17.68 C129.55,16.86 130.29,13.28 130.46,12.36 C131.26,8.25 131.76,4.68 131.93,1 L133.93,1 C133.76,4.82 133.25,8.5 132.43,12.75 C132.24,13.69 131.51,17.25 131.36,18.06 C131.092934,19.2835411 130.935643,20.5284834 130.89,21.78 C130.89,23.48 131.35,24 133,24 C134.99,24 136.55,23.43 138.7,22.1 C139.17,21.82 140.85,20.73 140.96,20.66 C144.92,18.14 148.12,17 153,17 C157.62,17 163.3,17.74 181.9,20.51 L183.43,20.74 C198.93,23.04 206.8,24 212,24 C217.25,24 225.11,23.59 240.65,22.6 L242.19,22.5 C260.73,21.32 266.43,21 271,21 C279.95,21 283.15,17.6 288.66,1 L290.76,1 Z M141.51,1 L142.64,1 C140.58,4.86 140.01,6.1 139.87,7.19 C139.72,8.31 140.29,8.83 142.19,9.15 C143.99,9.45 146.04,9.5 153,9.5 C159.02,9.5 166,10.06 174.35,11.12 C178.3,11.62 182.38,12.22 187.48,13.01 C211.48,16.71 209.98,16.5 214.31,16.5 C238.33,16.5 266.14,14.26 274.76,9.56 C277.64,7.99 279.81,5.07 281.36,1 L282.43,1 C280.79,5.47 278.45,8.69 275.23,10.44 C266.4,15.26 238.56,17.5 214.31,17.5 C209.9,17.5 211.47,17.72 187.33,14 C182.23,13.2 178.16,12.62 174.23,12.12 C165.92,11.06 158.97,10.5 153,10.5 C145.96,10.5 143.9,10.45 142.03,10.13 C139.65,9.73 138.65,8.81 138.88,7.06 C139.04,5.84 139.57,4.65 141.51,1 Z M217.91,1 C223.6,2.64 228.28,3.5 232,3.5 C241.59,3.5 248.7,2.79 254.4,1 L257.38,1 C251.12,3.53 243.2,4.5 232,4.5 C227.5,4.5 221.68,3.29 214.47,1 L217.92,1 L217.91,1 Z M70.69,1 C67.82,4.27 63.74,6.39 58.67,7.53 C54.69,8.42 51.17,8.61 45.75,8.53 C45.1667685,8.51475028 44.5834115,8.50474988 44,8.5 C38.63,8.5 35.14,7.26 33.9,3.53 C33.6411208,2.71136227 33.5062924,1.8585724 33.5,1 L34.49,1 C34.51,1.82 34.63,2.56 34.85,3.22 C35.91,6.39 39.02,7.5 44,7.5 L45.76,7.52 C51.11,7.61 54.56,7.42 58.45,6.55 C62.95,5.54 66.63,3.74 69.3,1 L70.67,1 L70.69,1 Z M5.15143483e-14,208.87 C7.31,208.71 11.5,212.2 11.5,220 C11.5,231.41 6.45,248.35 5.15143483e-14,261.5 L5.15143483e-14,259.2 C5.93,246.48 10.5,230.73 10.5,220 C10.5,212.82 6.8,209.7 5.15143483e-14,209.87 L5.15143483e-14,208.87 Z M5.10702591e-14,215.92 C1.23,216.06 2.18,216.5 2.87,217.23 C4.27,218.71 4.47,220.95 4.03,224.81 L3.87,226.11 C3.65913757,227.396846 3.53552233,228.696476 3.5,230 C3.5,233.2 2.02,239.52 5.10702591e-14,245.9 L5.10702591e-14,242.45 C1.49,237.32 2.5,232.58 2.5,230 C2.5,229.02 2.58,228.25 2.87,225.98 L3.03,224.69 C3.45,221.13 3.27,219.1 2.15,217.92 C1.65,217.39 0.94,217.05 5.15143483e-14,216.92 L5.10702591e-14,215.92 Z M2.93098879e-14,411.9 L5.15143483e-14,410.43 C1.18770258,408.997359 2.1859162,407.417694 2.97,405.73 C4.29,403.03 5.65,399.45 7.53,393.84 C15.38,370.29 15.36,367.24 7.78,363.44 C5.53,362.32 2.98,362.01 2.93098879e-14,362.53 L2.93098879e-14,361.51 C2.78035578,360.958214 5.66467961,361.323141 8.22,362.55 C16.46,366.67 16.48,370.15 8.47,394.15 C6.59,399.81 5.22,403.42 3.87,406.17 C2.90839626,408.282355 1.6003617,410.219057 2.93098879e-14,411.9 Z M33.64,453 C35.32,453 36.68,452.77 41.98,451.69 L44.36,451.22 C52.62,449.65 57.08,449.92 58.89,453.55 C60.27,456.3 58.42,459.41 54.14,463.23 C52.5058851,464.658971 50.8109811,466.016896 49.06,467.3 C48.12,468 44.17,470.89 43.27,471.57 C41.41,472.97 40.3,473.94 39.8,474.6 C38.5426361,476.26312 37.5663621,478.121081 36.91,480.1 C36.98,479.9 32.89,493.75 29.95,502.32 C27.25,510.17 24.39,513.04 21.13,510.91 C19.02,509.51 17.47,506.67 14.53,499.88 C12.55,495.26 12.03,494.12 11.13,492.48 C6.58,484.3 7.23,468.58 11.08,459.61 C12.2447503,456.567734 14.8728165,454.323712 18.06,453.65 C20.65,452.99 22.92,452.9 29.84,452.98 L33.64,453 Z M33.64,455 C32.51,455 31.55,455 29.82,454.98 C17.75,454.85 14.99,455.55 12.92,460.39 C9.29,468.86 8.66,483.94 12.87,491.51 C13.83,493.24 14.35,494.39 16.37,499.09 C19.09,505.39 20.61,508.17 22.23,509.23 C23.87,510.31 25.73,508.43 28.05,501.68 C30.4996778,494.306856 32.8233495,486.892443 35.02,479.44 C35.7439997,477.266924 36.818146,475.226722 38.2,473.4 C38.85,472.53 40.05,471.5 42.06,469.97 C42.98,469.27 46.93,466.4 47.86,465.7 C49.88,464.2 51.46,462.93 52.81,461.73 C56.44,458.5 57.9,456.03 57.11,454.45 C55.9,452.03 52.04,451.8 44.73,453.18 L42.38,453.65 C36.89,454.76 35.52,455 33.64,455 Z M379.27,601 C375.82,588.74 375.5,586.87 375.5,582 C375.5,578.67 375.37,575.73 375.07,570.66 C374.44,560.33 374.42,557.16 375.33,553.59 C376.54,548.85 379.54,546.49 385,546.49 L411,546.49 C415.08,546.49 416.19,548.34 416.93,553.6 C417.03,554.39 417.06,554.57 417.12,554.92 C417.96,560.27 419.92,562.5 426,562.5 C429.64,562.5 431.54,562.9 432.43,563.87 C433.19,564.7 433.19,565.31 432.79,567.8 C431.94,573.06 433.29,576.65 440.29,581.6 C446.61,586.05 451.92,586.96 456.84,584.97 C460.64,583.43 463.57,580.81 468.76,574.97 L469.86,573.74 L470.95,572.51 C471.825045,571.533412 472.725349,570.579756 473.65,569.65 C476.449493,566.89721 479.682633,564.623539 483.22,562.92 C484.74,562.16 484.94,562.06 488.88,560.29 C494.98,557.56 497.89,555.79 500.62,552.67 C503.25,549.67 505.29,547.82 507.32,546.63 C510.5,544.78 512.78,544.5 521,544.5 C526.98,544.5 531.56,540.18 539,529.51 L541.82,525.48 C542.88,523.98 543.76,522.78 544.61,521.69 C552.48,511.57 563.99,511.29 575.35,522.65 C580.89,528.18 585.52,542.08 588.99,561.16 C591.49,574.91 593.17,590.62 593.46,601 L592.46,601 C592.16,590.68 590.5,575.03 588.01,561.34 C584.58,542.47 579.99,528.69 574.65,523.35 C563.7,512.4 552.89,512.67 545.39,522.31 C544.56,523.38 543.69,524.57 542.64,526.06 L539.83,530.08 C532.18,541.03 527.45,545.5 521,545.5 C512.96,545.5 510.79,545.76 507.83,547.5 C505.91,548.62 503.93,550.4 501.38,553.33 C498.52,556.59 495.51,558.42 489.29,561.21 C487.391118,562.020339 485.516944,562.887394 483.67,563.81 C480.22573,565.464188 477.077027,567.673686 474.35,570.35 C473.050515,571.653324 471.799661,573.004246 470.6,574.4 L469.5,575.64 C464.22,581.59 461.21,584.28 457.22,585.89 C451.96,588.02 446.3,587.06 439.72,582.41 C432.39,577.24 430.9,573.26 431.8,567.64 C432.14,565.52 432.14,565.04 431.7,564.54 C431.06,563.85 429.36,563.5 426,563.5 C419.37,563.5 417.04,560.87 416.13,555.08 L415.93,553.74 C415.26,548.92 414.4,547.5 411,547.5 L385,547.5 C380,547.5 377.4,549.54 376.3,553.84 C375.42,557.27 375.45,560.41 376.07,570.6 C376.335788,574.394393 376.479196,578.196367 376.5,582 C376.5,586.78 376.82,588.63 380.31,601 L379.27,601 Z M392.95,601 C391.64,594.42 391.34,590.29 391.59,586.16 C391.63,585.46 391.69,584.72 391.77,583.78 L392,581.22 C392.34,577.41 392.5,574.25 392.5,570 C392.5,565.06 393.96,562.24 396.71,561.58 C399.09,561 402.27,562.12 405.91,564.58 C412.55,569.1 419.9,577.65 422.46,583.81 C427.23,595.25 436.58,599.5 456,599.5 C464.6,599.5 470.32,597.15 476.67,591.62 C478.12,590.36 491.73,576.62 497.67,571.62 C504.88,565.55 509.44,564.03 518.29,563.3 C523.81,562.85 526.27,562.4 529.73,560.94 C534.31,558.99 539.09,555.46 544.63,549.65 C552.06,541.89 557.88,540.73 562.1,545.35 C565.42,548.98 567.56,555.93 568.92,565.59 C569.65,570.76 569.86,573.33 570.5,582.97 C570.75,586.72 570.67,588.29 569.58,601 L568.58,601 C569.67,588.3 569.75,586.72 569.5,583.03 C568.86,573.43 568.65,570.87 567.93,565.73 C566.6,556.26 564.5,549.46 561.37,546.03 C557.61,541.92 552.44,542.95 545.37,550.35 C539.72,556.25 534.83,559.85 530.12,561.85 C526.54,563.38 523.99,563.84 518.52,564.29 C509.72,565.01 505.35,566.47 498.32,572.39 C492.42,577.35 478.82,591.09 477.32,592.38 C470.8,598.06 464.85,600.5 456,600.5 C436.22,600.5 426.5,596.08 421.54,584.2 C419.05,578.23 411.83,569.82 405.34,565.41 C401.92,563.09 398.98,562.06 396.94,562.55 C394.74,563.08 393.5,565.47 393.5,570 C393.5,574.28 393.34,577.47 393,581.31 L392.77,583.87 C392.68,584.8 392.63,585.52 392.58,586.22 C392.34,590.3 392.64,594.4 393.97,601 L392.95,601 Z M506.7,601 C509.22,597.74 515.63,589.21 517.6,586.7 C523.08,579.72 530.65,574.32 537,572.76 C544.01,571.05 548.5,574.21 548.5,582 C548.5,586.02 548.46,587.16 547.76,601 L546.76,601 C547.46,587.15 547.5,586 547.5,582 C547.5,574.88 543.64,572.17 537.24,573.74 C531.13,575.24 523.74,580.51 518.39,587.31 C516.53,589.67 510.74,597.38 507.96,601 L506.7,601 Z M496.84,262.04 C500.28,264.75 503.84,267.14 508.28,269.79 C509.34,270.43 516.7,274.69 518.63,275.89 C529.9,282.89 533.63,289.24 530.98,301.22 C529.53,307.74 526.45,312.32 521.59,315.66 C517.76,318.29 513.52,319.92 505.51,322.22 C493.54,325.67 491.83,326.21 486.69,328.5 C483.987516,329.699581 481.377113,331.096699 478.88,332.68 C467.77,339.75 459.78,340.38 450.92,335.96 C447.36,334.19 433.72,324.96 433.72,324.95 C432.017415,323.875456 430.283319,322.851672 428.52,321.88 C412.48,313.05 394.25,297.72 394,290.03 C393.89,286.57 395.99,283.46 400.28,279.77 C401.31,278.87 402.46,277.96 403.96,276.82 C404.68,276.27 407.34,274.26 407.9,273.82 C412.37,270.42 415.08,268.03 417.22,265.37 C428.34,251.55 443.77,236.69 451.58,233.09 C463.64,227.55 471.42,227.32 478.95,233.21 C482.2,235.75 484.6,239.75 487.53,246.56 C487.82,247.21 489.83,252.01 490.41,253.3 C492.03,256.95 493.31,259.1 494.65,260.24 C495.37,260.84 496.1,261.44 496.85,262.04 L496.84,262.04 Z M493.35,261.76 C491.72,260.37 490.32,258.02 488.58,254.11 C488,252.81 485.98,247.99 485.7,247.35 C482.89,240.85 480.62,237.05 477.72,234.79 C470.89,229.44 463.87,229.64 452.42,234.91 C444.97,238.33 429.72,253.03 418.78,266.63 C416.51,269.45 413.7,271.93 409.11,275.42 L405.17,278.4 C403.945954,279.325363 402.748792,280.285761 401.58,281.28 C397.71,284.61 395.91,287.28 396,289.97 C396.21,296.61 414.14,311.69 429.48,320.12 C431.24,321.09 432.98,322.12 434.78,323.25 C434.9,323.33 448.39,332.47 451.81,334.17 C460.03,338.27 467.27,337.69 477.81,330.99 C480.390497,329.357087 483.087799,327.916521 485.88,326.68 C491.13,324.33 492.88,323.78 504.96,320.3 C512.76,318.06 516.86,316.48 520.46,314 C524.9,310.96 527.69,306.82 529.02,300.78 C531.46,289.76 528.19,284.18 517.57,277.58 C515.67,276.4 508.34,272.16 507.25,271.5 C502.75,268.81 499.12,266.38 495.61,263.6 C494.84,263 494.09,262.39 493.35,261.76 Z M87.72,242.6 C92.02,239.62 95.6,237.6 99.86,235.65 C100.7,235.25 101.59,234.87 102.64,234.41 L107.01,232.53 C113.09872,229.904047 119.022889,226.911907 124.75,223.57 C133.797515,218.284221 143.098674,213.445082 152.62,209.07 C156.84,207.12 174.51,199.23 173.79,199.55 C192.96,190.93 201.89,192.62 223.29,207.6 C231.2,213.14 236.53,220.85 239.74,230.26 C242.76,239.09 243.5,246.77 243.5,258.01 C243.5,266.33 242.84,270.96 239.82,276.98 C235.64,285.34 227.52,293.12 214.24,300.45 C189.79,313.94 175.41,328 161.41,348.29 C152.58,361.09 113.65,392.5 96.25,402.44 C75.04,414.55 48.89,424.5 31,424.5 C20.95,424.5 16.33,419.72 16.24,411.13 C16.17,404.81 18.3,397.4 22.54,386.81 C25.49,379.44 24.56,373.91 20.38,364.52 C17.19,357.35 16.5,355.38 16.5,352 C16.5,348.65 18.37,345.1 22.02,340.93 C24.63,337.93 25.52,337.1 33.92,329.43 C39.01,324.77 42,321.83 44.62,318.68 C54.08,307.32 57.24,299.21 62.52,273.9 C65.64,258.85 69.15,253.62 77.64,248.65 C78.44,248.18 81.59,246.4 82.34,245.97 C84.1792723,244.918166 85.9741469,243.790531 87.72,242.59 L87.72,242.6 Z M88.28,243.42 C86.5148237,244.637985 84.6999335,245.7823 82.84,246.85 L78.14,249.52 C69.91,254.34 66.57,259.33 63.49,274.12 C58.19,299.57 54.98,307.82 45.39,319.33 C42.73,322.52 39.71,325.49 34.59,330.17 C26.23,337.81 25.35,338.65 22.77,341.59 C19.27,345.6 17.5,348.95 17.5,352.01 C17.5,355.19 18.18,357.11 21.3,364.13 C25.57,373.73 26.54,379.5 23.46,387.2 C19.28,397.67 17.17,404.98 17.24,411.13 C17.32,419.19 21.5,423.51 31,423.51 C48.67,423.51 74.68,413.61 95.75,401.58 C113.03,391.7 151.85,360.38 160.59,347.73 C174.67,327.31 189.16,313.14 213.76,299.57 C226.88,292.34 234.85,284.7 238.93,276.54 C241.85,270.68 242.5,266.19 242.5,258.01 C242.5,246.88 241.76,239.28 238.8,230.58 C235.65,221.36 230.44,213.83 222.71,208.42 C201.58,193.62 193.01,192 174.21,200.47 C174.91,200.15 157.25,208.03 153.04,209.97 C151.34,210.77 149.74,211.52 148.18,212.27 C140.375042,216.014529 132.725403,220.074542 125.25,224.44 C119.487263,227.800774 113.52636,230.809611 107.4,233.45 L103.03,235.33 C101.99,235.78 101.11,236.17 100.27,236.56 C96.0696624,238.47071 92.0557735,240.767231 88.28,243.42 Z M80.68,255.62 C88.38,249.37 92.98,247.45 104.36,244.35 C110.48,242.68 113.48,241.4 116.67,238.63 C120.47,235.33 124.14,234.11 132.53,232.53 C135.28,232.01 136.2,231.83 137.59,231.51 C143.07,230.27 147.07,228.58 150.69,225.62 C161.11,217.09 176.09,211.51 187,211.51 C192.33,211.51 203.77,219.09 212.74,228.67 C223.47,240.13 228.7,251.94 225.47,261.17 C222.29,270.27 214.08,279.74 202.44,289.03 C194,295.76 184.08,302.03 177.22,305.46 C173.5,307.32 170.63,310.34 167.45,315.45 C166.76,316.55 156.35,335.7 151.42,343.28 C145.8,351.93 136.02,360.64 121.19,371.24 C118.145136,373.411076 115.078312,375.551186 111.99,377.66 C111.86,377.75 105.18,382.31 103.39,383.55 C96.92,388.01 93.04,390.9 90.34,393.38 C78.7,404.05 53.2,408.92 46.64,402.36 C44.68,400.4 44.44,398.3 44.69,391.84 C45.06,382.42 44.19,377.34 39.74,371.33 C37.7415066,368.693984 35.3699818,366.362883 32.7,364.41 C28.77,361.46 26.63,358.3 26.14,354.92 C25.17,348.31 30.01,341.86 40.31,333.23 C41.89,331.91 46.98,327.79 47.4,327.45 C49.258285,325.990803 51.0063644,324.396475 52.63,322.68 C56.73,318.05 58.48,313.13 60.43,302.61 C60.7031172,301.154522 60.9697865,299.697841 61.23,298.24 C61.56,296.37 61.83,294.94 62.11,293.51 C62.85,289.73 63.61,286.33 64.51,282.88 C65.51,279.1 65.89,277.38 66.87,272.51 C67.47,269.49 67.8,268.3 68.43,267.04 C69.65,264.59 69.7,264.54 80.68,255.62 Z M81.32,256.4 C70.55,265.14 70.44,265.24 69.32,267.48 C68.74,268.64 68.44,269.78 67.85,272.7 C66.87,277.59 66.49,279.33 65.48,283.14 C64.58,286.57 63.83,289.94 63.09,293.7 C62.635914,296.012131 62.2058907,298.328923 61.8,300.65 L61.41,302.8 C59.43,313.48 57.64,318.54 53.37,323.34 C51.7132607,325.096617 49.9283519,326.72777 48.03,328.22 C47.61,328.56 42.53,332.69 40.96,334 C30.92,342.4 26.24,348.65 27.13,354.78 C27.58,357.88 29.57,360.81 33.3,363.61 C36.3,365.86 38.69,368.23 40.54,370.73 C45.17,376.97 46.06,382.25 45.69,391.88 C45.44,398.02 45.68,399.98 47.35,401.66 C53.45,407.76 78.37,402.99 89.66,392.64 C92.41,390.12 96.32,387.21 102.82,382.72 L111.42,376.83 C115.05,374.35 117.87,372.39 120.61,370.43 C135.34,359.89 145.05,351.25 150.58,342.73 C155.48,335.19 165.89,316.05 166.6,314.93 C169.87,309.67 172.86,306.52 176.78,304.56 C183.57,301.16 193.43,294.93 201.81,288.24 C213.33,279.06 221.42,269.71 224.53,260.84 C227.6,252.06 222.51,240.57 212.01,229.35 C203.21,219.95 191.97,212.51 187,212.51 C176.33,212.51 161.57,218.01 151.32,226.4 C147.56,229.47 143.42,231.21 137.82,232.49 C136.41,232.81 135.47,232.99 132.71,233.51 C124.5,235.06 120.95,236.24 117.33,239.39 C113.99,242.29 110.88,243.61 104.63,245.31 C93.37,248.38 88.88,250.25 81.32,256.4 Z M212,252.85 C212,260.41 211.4,263.77 209.4,267.15 C208.3,268.99 201.74,277.2 200.8,278.45 C194.84,286.39 191.47,288.73 183.54,292.21 C182.2,292.79 181.34,293.21 180.51,293.71 C179.96,294.04 179.31,294.37 178.51,294.73 C177.8,295.06 174.05,296.63 172.99,297.12 C166.94,299.9 164,302.92 164,307.85 C164,318.82 145.05,343.97 129.49,352.72 C121.31,357.32 108.19,362.08 96.71,364.58 C83.38,367.48 74.22,367.06 72.09,362.26 C70.77,359.29 67.69,358 60.11,356.45 L59.51,356.33 C54.67,355.34 52.57,354.78 50.48,353.69 C47.56,352.19 46,349.99 46,346.85 C46,344.11 47.08,341.08 49.25,337.18 C50.1,335.65 51.07,334.05 52.48,331.83 C52.32,332.08 55.31,327.43 56.15,326.07 C62.84,315.37 66,307.57 66,298.85 C66,280.44 77.22,265.48 93.5,255.99 C98.72,252.94 102.73,252.68 108.7,253.87 C113.74,254.87 114.75,254.77 116.13,252.35 C120.63,244.5 123.17,242.85 132,242.85 C135.93,242.85 138.97,241.87 142.47,239.69 C144.03,238.72 151.14,233.52 153.46,232.01 C162.66,226.03 164.8,225.01 178.66,220.06 C185.61,217.58 193.84,221.34 200.99,229.18 C207.54,236.37 212,245.79 212,252.85 Z M210,252.85 C210,246.35 205.75,237.37 199.51,230.53 C192.84,223.21 185.35,219.79 179.34,221.94 C165.61,226.84 163.61,227.79 154.54,233.69 C152.3,235.15 145.17,240.37 143.53,241.39 C139.73,243.75 136.33,244.85 132,244.85 C123.92,244.85 122.02,246.08 117.87,253.35 C116.77,255.26 115.36,256.23 113.52,256.44 C112.22,256.58 111.62,256.49 108.3,255.83 C102.77,254.73 99.23,254.95 94.5,257.71 C78.78,266.88 68,281.26 68,298.85 C68,308.05 64.72,316.14 57.85,327.13 L54.17,332.9 C52.78,335.09 51.82,336.67 51,338.15 C48.98,341.78 48,344.53 48,346.85 C48,351.04 50.87,352.52 59.9,354.37 L60.51,354.49 C68.78,356.19 72.21,357.62 73.91,361.44 C77.08,368.58 109.91,361.44 128.51,350.98 C143.49,342.55 162,317.99 162,307.85 C162,301.95 165.47,298.37 172.16,295.3 C173.26,294.8 177.01,293.22 177.68,292.92 C178.42,292.58 179,292.28 179.48,291.99 C180.4,291.44 181.33,290.99 182.73,290.37 C190.38,287.02 193.48,284.87 199.2,277.25 C200.22,275.89 206.67,267.83 207.67,266.14 C209.46,263.13 210,260.08 210,252.84 L210,252.85 Z M172.82,230.45 C172.97,230.35 175.22,228.94 175.77,228.61 C176.73,228.04 177.47,227.67 178.2,227.44 C180.77,226.61 183.26,227.34 189.24,230.56 C204.1,238.56 208.67,253.43 198.42,269.27 C194.38,275.51 189.05,278.27 179.7,280.38 C178.85,280.58 178.5,280.65 176.57,281.06 C170.53,282.35 167.79,283.14 164.97,284.71 C161.34,286.73 158.88,289.69 157.47,294.15 C149.6,319.08 137.75,337.49 121.19,344.46 C104.74,351.39 100.06,352.99 93.21,353.35 C88.27,353.6 83.41,352.7 77.81,350.46 C75.871681,349.725888 73.9870824,348.857102 72.17,347.86 C68.15,345.53 67.03,343.12 67.67,338.55 C67.97,336.42 71.44,323.02 72.51,317.9 C73.14,314.85 73.7,311.76 74.26,308.21 C74.7387649,305.247768 75.1887861,302.280962 75.61,299.31 C77.03,289.9 78.11,285.04 80.1,280.66 C82.56,275.23 86.23,271.63 91.82,269.53 C98.41,267.06 102.36,266.43 109.85,266 C114.6,265.73 116.53,265.36 118.85,263.95 C119.46,263.58 120.07,263.14 120.67,262.62 C121.880369,261.576379 123.007147,260.43957 124.04,259.22 C124.63,258.53 126.42,256.32 126.67,256.03 C130.03,252.03 132.97,250.5 139,250.5 C142.94,250.5 144.9,249.58 147.18,247.14 C147.01,247.32 149.93,244 151.03,242.92 C153.05463,240.951372 155.339161,239.269096 157.82,237.92 C159.32,237.09 160.97,236.3 162.81,235.54 C166.287766,234.132439 169.63697,232.426052 172.82,230.44 L172.82,230.45 Z M158.3,238.79 C155.899439,240.096032 153.688926,241.724477 151.73,243.63 C150.42279,244.99881 149.14908,246.399224 147.91,247.83 C145.45,250.46 143.23,251.5 139,251.5 C133.28,251.5 130.61,252.89 127.43,256.67 C127.2,256.95 125.4,259.17 124.8,259.87 C123.736615,261.12868 122.57641,262.302259 121.33,263.38 C120.68,263.93 120.03,264.41 119.37,264.81 C116.87,266.32 114.82,266.71 109.9,267 C102.51,267.42 98.65,268.04 92.18,270.47 C86.84,272.47 83.36,275.87 81.01,281.07 C79.08,285.34 78.01,290.14 76.6,299.46 L75.95,303.8 L75.25,308.37 C74.68,311.93 74.13,315.04 73.49,318.1 C72.41,323.28 68.95,336.63 68.66,338.69 C68.07,342.86 69.01,344.87 72.67,346.99 C74.02,347.76 75.77,348.57 78.19,349.54 C83.65,351.72 88.37,352.59 93.16,352.34 C99.85,352 104.48,350.41 120.81,343.54 C137.02,336.71 148.73,318.53 156.52,293.84 C158.01,289.14 160.64,285.98 164.49,283.84 C167.42,282.21 170.23,281.39 176.36,280.08 C178.28,279.68 178.64,279.59 179.48,279.4 C188.6,277.34 193.72,274.7 197.58,268.73 C207.5,253.39 203.13,239.18 188.76,231.44 C183.01,228.34 180.73,227.68 178.51,228.39 C177.86,228.59 177.18,228.93 176.28,229.47 C175.73,229.79 173.51,231.19 173.35,231.29 C170.119002,233.303527 166.719624,235.033329 163.19,236.46 C161.39,237.21 159.77,237.98 158.3,238.79 Z M115.91,271.51 C132.06,268.64 142.27,270.54 148.38,277.67 C153.46,283.6 149.51,299.09 142.45,313.22 C137.66,322.8 131.85,329.43 119.29,338.41 C105.14,348.51 83.79,350.61 78.58,342.26 C76.72,339.29 76.48,334.12 77.52,326.53 C78.3,320.85 79.38,315.82 82.25,303.55 L82.37,303.04 C83.96,296.24 84.74,292.73 85.51,288.9 C86.96,281.65 89.25,277.43 92.77,275.16 C95.58,273.36 98.3,272.88 105.1,272.54 C110.43,272.27 112.66,272.08 115.91,271.51 Z M116.09,272.49 C112.79,273.08 110.53,273.27 105.15,273.54 C98.53,273.87 95.92,274.32 93.31,276 C90.06,278.1 87.89,282.09 86.49,289.1 C85.72,292.94 84.93,296.45 83.34,303.27 L83.22,303.77 C80.36,316.01 79.29,321.03 78.52,326.67 C77.49,334.03 77.73,339.03 79.42,341.74 C84.24,349.44 104.96,347.41 118.71,337.59 C131.14,328.71 136.84,322.2 141.55,312.78 C148.41,299.06 152.3,283.78 147.62,278.33 C141.78,271.52 131.92,269.68 116.09,272.49 Z M132,277.5 C139.12,277.5 142.66,280.58 143.25,286.2 C143.67,290.22 142.82,294.34 140.48,302.14 C137.92,310.66 122.12,327.52 113.28,333.42 C106.27,338.09 93.26,339.09 86.71,334.41 C82.72,331.56 83.18,322.33 86.73,307.95 C87.41,305.2 88.2,302.3 89.1,299.19 C90.0732517,295.797093 91.090002,292.416815 92.15,289.05 L92.52,287.85 C94,283.05 97.62,280.1 103.25,278.58 C107.65,277.38 112.79,277.08 120.73,277.25 L124.62,277.35 C128.49,277.46 130.04,277.5 132,277.5 Z M132,278.5 C130.03,278.5 128.47,278.46 124.59,278.35 L120.71,278.25 C112.86,278.08 107.79,278.38 103.51,279.55 C98.19,280.98 94.84,283.71 93.48,288.15 C92.9503709,289.887802 92.4170363,291.624473 91.88,293.36 C91.2,295.56 90.61,297.53 90.06,299.46 C89.16,302.56 88.38,305.45 87.7,308.19 C84.27,322.07 83.83,331.12 87.3,333.59 C93.47,338.01 106.03,337.04 112.72,332.59 C121.38,326.81 137.05,310.1 139.52,301.86 C141.82,294.19 142.66,290.15 142.25,286.3 C141.72,281.2 138.61,278.5 132,278.5 Z M114.21,285.5 C117.117839,285.566211 120.002258,286.037411 122.78,286.9 C128.2,288.68 131.5,291.93 131.5,297 C131.5,306.59 121.99,314.2 109.16,318.47 C99.34,321.75 95.54,316.68 97.5,301.93 C98.34,295.65 101.32,291.26 105.74,288.47 C108.307537,286.86286 111.201036,285.848256 114.21,285.5 Z M113.61,286.58 C111.00312,286.981305 108.505522,287.910248 106.27,289.31 C102.09,291.95 99.29,296.09 98.5,302.07 C96.61,316.18 99.86,320.52 108.84,317.53 C121.3,313.37 130.5,306 130.5,297 C130.5,292.44 127.52,289.5 122.47,287.85 C119.818859,286.995347 117.055202,286.540355 114.27,286.5 C114.14,286.5 113.92,286.53 113.61,286.58 Z M194.48,263.13 C191.76,272.93 179.55,272.99 167.76,266.43 C157.59,260.79 153.96,248.45 162.76,243.56 C164.28815,242.719075 165.782638,241.818379 167.24,240.86 L169.27,239.56 C170.541237,238.734487 171.849247,237.967033 173.19,237.26 C177.92,234.83 182.01,234.46 187.19,236.54 C196.35,240.2 198.17,249.87 194.49,263.14 L194.48,263.13 Z M173.65,238.15 C172.336755,238.841764 171.055448,239.59253 169.81,240.4 L167.78,241.7 C166.94,242.23 166.28,242.65 165.62,243.05 C164.8,243.55 164.02,244.01 163.24,244.44 C155.3,248.84 158.65,260.24 168.24,265.56 C179.55,271.85 191.04,271.79 193.52,262.86 C197.09,250.03 195.37,240.89 186.82,237.46 C181.92,235.51 178.13,235.84 173.65,238.16 L173.65,238.15 Z M191.5,250.3 C191.5,256 189.06,259.3 184.86,260.26 C181.56,261.02 177.3,260.21 173.78,258.45 L171.89,257.51 C171.22,257.17 170.71,256.89 170.26,256.63 C166.19,254.25 166.13,251.66 170.6,245.7 C177.4,236.64 191.5,238.54 191.5,250.3 Z M190.5,250.3 C190.5,245 187.63,241.75 183.18,241.14 C178.95,240.57 174.19,242.58 171.4,246.3 C167.25,251.84 167.3,253.74 170.76,255.77 C171.2,256.02 171.69,256.28 172.35,256.62 L174.22,257.55 C177.56,259.22 181.58,259.99 184.64,259.29 C188.37,258.43 190.5,255.55 190.5,250.29 L190.5,250.3 Z M387,531.3 C387,518.5 389.44,514.56 405.48,501.53 C407.871612,499.593376 410.416655,497.854319 413.09,496.33 C415.69,494.83 418.42,493.51 421.59,492.15 C422.83,491.62 424.07,491.1 425.69,490.45 L429.61,488.88 C439.01,485.05 443.35,482.18 446.23,476.83 C447.43,474.61 448.44,472.43 449.46,470 C449.991132,468.72721 450.504515,467.447086 451,466.16 L451.3,465.42 L451.86,463.98 C455.06,455.96 457.91,451.9 464.56,447.48 C466.330667,446.299095 467.990777,444.960296 469.52,443.48 C470.90137,442.132157 472.197225,440.699369 473.4,439.19 C473.67,438.85 475.95,435.99 476.6,435.21 C480.08,431.06 483.11,429.31 488.11,429.31 C491.19,429.31 493.73,428.68 497.68,427.21 C503.1,425.19 504.21,424.87 506.64,425.01 C509.17,425.14 511.49,426.27 513.82,428.6 C515.12,429.9 519.37,434.43 520.34,435.38 C525.4,440.38 529.78,442.3 538.11,442.3 C542.140315,442.326706 546.168868,442.476776 550.19,442.75 C566.12,443.62 572.13,443.32 575.47,440.54 C582.38,434.77 587.11,437.81 587.11,448.3 C587.11,459.03 578.51,468.3 568.11,468.3 C563.31,468.3 559.79,469.73 558.77,471.97 C557.65,474.45 559.45,478.12 564.75,482.54 C578.35,493.87 575.99,503.3 557.11,503.3 C551.767175,503.207832 546.574844,505.071381 542.51,508.54 C539.23,511.25 536.71,514.4 532.66,520.36 L531.14,522.61 C528.04,527.18 526.13,529.71 523.82,532.01 C517.61,538.22 514.52,539.65 510.77,538.9 L509.77,538.67 C508.902139,538.436679 508.008592,538.312389 507.11,538.3 C505.51,538.3 504.7,538.97 498.93,544.52 C494.08,549.19 490.86,551.3 487.11,551.3 C485.78,551.3 483.65,552.45 480.66,554.75 C479.39,555.73 477.98,556.89 476.16,558.45 L471.24,562.74 C469.747627,564.038039 468.234091,565.311543 466.7,566.56 C457.37,574.12 451.07,576.76 446.49,573.08 C443.79,570.93 442.35,568.57 441.86,565.82 C441.49,563.78 441.6,562.19 442.15,558.52 C443.02,552.67 442.8,550.1 440.32,546.92 C438,543.94 437.36,543.7 436.55,544.53 C436.3,544.79 435.2,546.16 434.94,546.47 C432.73,548.97 430.09,550.04 425.94,549.29 C421.34,548.45 420.37,545.18 421.22,539.2 L421.46,537.64 C422.06,533.98 422.14,532.71 421.71,531.84 C421.27,530.98 419.81,530.9 416.48,532.24 L415.74,532.53 C401.96,538.07 400.48,538.62 396.31,539.2 C390.28,540.04 387,537.6 387,531.3 Z M389,531.3 C389,536.3 391.14,537.9 396.04,537.22 C399.95,536.67 401.47,536.12 414.99,530.67 L415.74,530.37 C419.91,528.71 422.44,528.83 423.5,530.95 C424.21,532.38 424.12,533.71 423.44,537.95 L423.2,539.48 C422.48,544.52 423.14,546.75 426.29,547.32 C429.72,547.94 431.67,547.15 433.44,545.14 C433.64,544.91 434.78,543.48 435.12,543.14 C437.02,541.18 438.94,541.89 441.9,545.69 C444.8,549.43 445.07,552.46 444.12,558.81 C443.12,565.56 443.6,568.21 447.74,571.52 C451.23,574.32 456.84,571.97 465.44,565.01 C466.79,563.91 468.19,562.73 469.93,561.23 L474.86,556.93 C476.7,555.35 478.13,554.17 479.44,553.16 C482.78,550.6 485.18,549.3 487.11,549.3 C490.15,549.3 493.06,547.4 497.54,543.08 L500,540.69 C500.94,539.8 501.67,539.13 502.37,538.56 C504.18,537.07 505.67,536.3 507.11,536.3 C508.14,536.3 508.92,536.43 510.21,536.72 C510.91,536.88 510.92,536.89 511.17,536.93 C514.13,537.53 516.62,536.38 522.4,530.6 C524.6,528.4 526.46,525.95 529.49,521.49 L531.01,519.24 C535.16,513.13 537.77,509.87 541.23,507 C545.654369,503.232659 551.299741,501.206298 557.11,501.3 C573.98,501.3 575.73,494.29 563.47,484.07 C557.57,479.15 555.35,474.66 556.95,471.14 C558.37,468.02 562.62,466.3 568.11,466.3 C577.36,466.3 585.11,457.96 585.11,448.3 C585.11,439.36 582.23,437.51 576.75,442.07 C572.81,445.35 566.77,445.66 550.08,444.75 L549.06,444.69 C543.97,444.42 541.07,444.3 538.11,444.3 C529.23,444.3 524.35,442.16 518.93,436.8 C517.93,435.82 513.67,431.27 512.4,430.01 C510.41,428.02 508.54,427.11 506.53,427.01 C504.5,426.89 503.47,427.19 498.38,429.08 C494.23,430.63 491.48,431.3 488.11,431.3 C483.78,431.3 481.27,432.76 478.13,436.5 C477.5,437.24 475.24,440.1 474.95,440.45 C473.697365,442.019211 472.348079,443.508769 470.91,444.91 C469.294595,446.475277 467.540767,447.891058 465.67,449.14 C459.41,453.31 456.77,457.05 453.72,464.72 L453.15,466.15 L452.87,466.89 C452.35509,468.185374 451.835086,469.478717 451.31,470.77 C450.320741,473.15723 449.21269,475.493483 447.99,477.77 C444.83,483.65 440.17,486.74 430.36,490.73 L426.44,492.31 C424.84,492.95 423.6,493.46 422.39,493.98 C419.54622,495.177162 416.77483,496.539484 414.09,498.06 C411.507935,499.531269 409.049829,501.210139 406.74,503.08 C391.12,515.78 389,519.21 389,531.31 L389,531.3 Z M522.22,451.54 C525.28,453.07 528.76,453.56 532.9,453.24 C535.43,453.04 537.81,452.62 541.7,451.75 C547.06,450.56 548.03,450.37 550.03,450.21 C552.81,449.98 554.85,450.38 556.32,451.61 C557.9,452.92 558.28,454.33 557.58,455.83 C556.92,457.21 556.53,457.57 552.53,460.9 C549,463.83 547.5,465.73 547.5,467.99 C547.5,475.29 548.79,478.01 555.33,483.61 C559.19,486.91 561.26,490.45 560.61,493.23 C559.86,496.48 555.65,498.25 548,498.25 C540.82,498.25 535.3,502.86 527.97,512.93 C527.47,513.63 524.01,518.5 523.03,519.8 C521.631302,521.776261 520.051108,523.617589 518.31,525.3 C517.25,526.28 516.22,527 515.21,527.45 C512.36,528.71 510.16,529.02 505.38,529.19 C497.72,529.46 494.51,530.64 490.4,536.29 C488.82,538.46 487.29,540.29 485.72,541.89 C483.134066,544.480102 480.22709,546.728388 477.07,548.58 C476.92,548.66 466.38,554.77 462.27,557.41 C458.51,559.83 455.82,559.45 454.05,556.64 C452.77,554.61 452.15,552.1 451.18,546.29 C450.34,541.21 449.91,539.21 449.12,537.36 C448.15,535.06 446.91,534.12 445.1,534.48 C438.9,535.72 436.15,535.87 434.12,534.68 C431.75,533.28 430.99,530.06 431.5,523.95 C431.66,521.99 430.46,521.08 427.74,520.91 C425.5,520.78 422.84,521.11 417.8,522.03 L417.11,522.15 C409.14,523.6 406.39,523.87 404.39,522.88 C401.48,521.45 402.79,517.61 408.62,510.67 C414.1,504.14 419.22,499.86 424.38,497.14 C428.12,495.17 430.32,494.49 436.54,493.04 C443.83,491.32 446.94,489.53 450.58,483.73 C453.54,478.98 461.32,465.11 462.72,462.89 C466.31,457.22 469.52,453.79 473.77,451.55 C476.37,450.17 478.49,448.73 482.94,445.48 L484.32,444.47 C492.17,438.75 496.62,436.49 502,436.49 C506.22,436.49 508.49,437.85 511.13,441.26 C511.47,441.69 512.8,443.48 513.13,443.93 C513.98,445.02 514.73,445.91 515.58,446.76 C517.507142,448.71731 519.752317,450.333566 522.22,451.54 Z M521.78,452.44 C518.98,451.04 516.78,449.41 514.86,447.47 C513.99,446.57 513.21,445.66 512.35,444.54 C512,444.08 510.67,442.29 510.34,441.87 C507.87,438.69 505.88,437.49 502,437.49 C496.91,437.49 492.6,439.69 484.91,445.27 L483.53,446.28 C479.04,449.57 476.9,451.02 474.23,452.43 C470.17,454.58 467.07,457.88 463.57,463.43 C462.18,465.62 454.41,479.48 451.42,484.25 C447.63,490.32 444.29,492.23 436.76,494 C430.63,495.45 428.49,496.1 424.84,498.02 C419.8,500.68 414.79,504.88 409.38,511.32 C403.95,517.78 402.85,521.01 404.83,521.98 C406.53,522.82 409.31,522.55 416.93,521.17 L417.63,521.04 C422.75,520.11 425.45,519.77 427.8,519.92 C431.01,520.12 432.72,521.4 432.5,524.03 C432.02,529.79 432.7,532.67 434.63,533.81 C436.36,534.83 438.97,534.69 444.9,533.5 C447.25,533.03 448.9,534.28 450.04,536.97 C450.87,538.92 451.31,540.97 452.11,545.77 L452.17,546.13 C453.11,551.78 453.72,554.24 454.89,556.11 C456.35,558.41 458.41,558.71 461.73,556.57 C465.87,553.91 476.42,547.8 476.54,547.72 C479.627743,545.910264 482.47089,543.712371 485,541.18 C486.667831,539.470589 488.205454,537.638811 489.6,535.7 C493.92,529.75 497.41,528.47 505.34,528.2 C510,528.03 512.1,527.73 514.8,526.53 C515.7,526.13 516.65,525.47 517.64,524.57 C519.33629,522.929902 520.876264,521.135498 522.24,519.21 C523.2,517.91 526.64,513.05 527.17,512.34 C534.67,502.03 540.39,497.25 548,497.25 C555.24,497.25 559.02,495.65 559.64,493.01 C560.18,490.69 558.28,487.46 554.67,484.37 C547.92,478.58 546.5,475.58 546.5,467.99 C546.5,465.32 548.14,463.25 551.89,460.13 C555.69,456.96 556.12,456.57 556.67,455.4 C557.17,454.34 556.92,453.41 555.68,452.37 C553.45,450.52 550.96,450.72 541.92,452.73 C537.99,453.6 535.57,454.03 532.98,454.23 C528.68,454.57 525.01,454.05 521.78,452.43 L521.78,452.44 Z M493.78,448.54 C499.43,445.72 502.74,446.34 506.68,449.91 C507.24,450.41 509.28,452.38 509.7,452.78 C513.9,456.67 517.77,458.49 524,458.49 C535.37,458.49 538,459.9 540.1,466.58 C540.36,467.41 541.45,471.18 541.76,472.2 C542.56,474.83 543.4,477.23 544.46,479.8 C546.59,484.97 547.1,488.12 546.18,490.04 C545.41,491.65 544.08,492.22 540.81,492.83 C538.49,493.26 538.01,493.36 536.96,493.68 C535.11,494.26 533.61,495.08 532.36,496.34 C531.36,497.34 530.34,498.47 529.05,500 C528.45,500.71 526.14,503.5 525.59,504.14 C518.39,512.68 513.16,516.49 506,516.49 C502.24,516.49 499.05,517.77 495.41,520.49 C493.57,521.86 483.79,530.8 480.19,533.55 C477.354457,535.726208 474.363097,537.691481 471.24,539.43 C466.66,541.97 463.89,542.65 462.26,541.66 C460.94,540.86 460.61,539.59 460.32,536.16 C460.277106,535.555789 460.223765,534.952366 460.16,534.35 C459.62,529.62 457.92,527.49 453,527.49 C445.89,527.49 444.15,526.26 443.27,522.08 C442.31,517.47 441.17,515.38 436.72,512.41 C432.75,509.76 432.41,506.99 435.2,504.19 C437.2,502.19 439.83,500.69 446.55,497.32 C453.16,494.02 455.75,492.52 457.65,490.64 C459.64353,488.675945 461.420383,486.50349 462.95,484.16 C463.93,482.66 464.78,481.12 465.83,479.03 L467.95,474.73 C468.86,472.9 469.67,471.36 470.56,469.75 C476.3,459.43 480.93,454.97 493.78,448.55 L493.78,448.54 Z M471.44,470.24 C470.55,471.83 469.75,473.36 468.84,475.18 L466.73,479.48 C465.84973,481.277548 464.868151,483.023689 463.79,484.71 C462.21901,487.108203 460.395238,489.330924 458.35,491.34 C456.35,493.34 453.73,494.85 447,498.21 C440.4,501.51 437.8,503.01 435.9,504.9 C433.57,507.24 433.82,509.27 437.28,511.57 C441.98,514.71 443.24,517.03 444.25,521.87 C445.03,525.57 446.34,526.49 453,526.49 C458.5,526.49 460.57,529.06 461.15,534.24 C461.21,534.74 461.24,535.06 461.32,536.08 C461.57,539.14 461.87,540.25 462.78,540.8 C463.98,541.54 466.47,540.93 470.76,538.55 C473.837789,536.834806 476.78569,534.896277 479.58,532.75 C483.13,530.05 492.92,521.1 494.82,519.68 C498.61,516.85 502,515.49 506,515.49 C512.77,515.49 517.8,511.82 524.83,503.49 L528.28,499.36 C529.351012,498.073588 530.475327,496.832505 531.65,495.64 C533.050143,494.265997 534.772779,493.265424 536.66,492.73 C537.76,492.39 538.26,492.28 540.63,491.84 C543.58,491.29 544.7,490.82 545.28,489.61 C546.04,488.02 545.56,485.11 543.54,480.18 C542.503247,477.66233 541.588846,475.096 540.8,472.49 C540.49,471.46 539.4,467.69 539.14,466.88 C537.19,460.68 534.98,459.49 524,459.49 C517.5,459.49 513.39,457.56 509.02,453.51 C508.58,453.11 506.56,451.14 506.01,450.65 C502.36,447.35 499.49,446.8 494.22,449.44 C481.55,455.77 477.07,460.09 471.44,470.24 Z M527.3,482.17 C524.32,488.62 510.52,497.43 500.56,497.43 C495.23,497.43 493,494.45 493.45,489.57 C493.77,486.09 495.55,481.66 497.38,478.96 L498.9,476.64 C499.493509,475.71736 500.120595,474.816757 500.78,473.94 C504.44,469.14 508.63,466.49 514.4,466.49 C523.46,466.49 530.15,476.01 527.3,482.17 Z M526.4,481.75 C528.92,476.28 522.75,467.49 514.4,467.49 C509,467.49 505.07,469.97 501.58,474.55 C500.98,475.35 500.41,476.15 499.73,477.19 C499.73,477.19 498.53,479.06 498.21,479.52 C496.47,482.09 494.75,486.37 494.44,489.66 C494.04,493.99 495.87,496.43 500.56,496.43 C510.13,496.43 523.58,487.85 526.39,481.75 L526.4,481.75 Z M456.73,502.49 C458.81,502.67 461.17,503.3 462.61,504.29 C464.73,505.76 464.81,507.89 462.35,510.34 C457.21,515.49 449.5,514.68 449.5,508.99 C449.5,504.33 452.64,502.15 456.73,502.49 Z M456.64,503.49 C453.08,503.19 450.5,504.99 450.5,508.99 C450.5,513.57 457.03,514.25 461.65,509.64 C463.68,507.6 463.63,506.21 462.05,505.12 C460.78,504.24 458.57,503.65 456.65,503.49 L456.64,503.49 Z M486.23,277.54 C490.87,279.89 503.5,285.78 505.62,286.97 C508.303778,288.389908 510.695602,290.303367 512.67,292.61 C514.04196,294.252035 515.295136,295.989771 516.42,297.81 C518.82,301.59 516.46,305.47 510.22,309.44 C505.25,312.6 498.04,315.74 488.27,319.26 C483.43,321 468.64,325.94 467.17,326.46 C460.58,328.79 452.32,326.56 442.03,320.6 C438.1,318.33 434.03,315.6 429.09,312.06 C426.86,310.45 419.59,305.07 418.39,304.21 C415.637365,302.128565 412.754855,300.224705 409.76,298.51 C404.94,295.91 405.31,291.87 409.93,286.38 C413.2,282.5 414.1,281.71 428.03,270.05 C431.058912,267.546303 434.023217,264.965457 436.92,262.31 C438.546984,260.811964 440.121273,259.257687 441.64,257.65 C446.72,252.22 451.44,251.16 456.61,253.73 C458.85,254.83 461.14,256.58 464.04,259.25 C465.52,260.62 470.98,265.97 472.02,266.95 C477.22,271.86 481.48,275.15 486.22,277.55 L486.23,277.54 Z M485.77,278.44 C480.92,275.99 476.59,272.65 471.33,267.68 C470.28,266.68 464.83,261.34 463.36,259.99 C460.53,257.38 458.3,255.69 456.16,254.62 C451.41,252.26 447.16,253.22 442.36,258.33 C440.828485,259.954775 439.240857,261.525727 437.6,263.04 C435.12,265.34 432.44,267.66 428.68,270.81 C414.82,282.41 413.91,283.21 410.7,287.02 C406.42,292.1 406.12,295.42 410.24,297.63 C412.47,298.83 415.14,300.62 418.98,303.4 C420.18,304.27 427.45,309.64 429.68,311.25 C433.819812,314.291458 438.108451,317.124964 442.53,319.74 C452.59,325.56 460.6,327.72 466.83,325.52 C468.31,325 483.1,320.05 487.93,318.32 C497.63,314.82 504.79,311.71 509.68,308.6 C515.52,304.89 517.58,301.5 515.58,298.34 C514.478714,296.561757 513.252283,294.864137 511.91,293.26 C510.011783,291.042182 507.711389,289.203223 505.13,287.84 C503.05,286.68 490.45,280.79 485.77,278.44 Z M446.94,286.49 C450.05,286.12 452.64,286.36 455.34,287.19 C457.49,287.85 458.08,288.12 463.98,290.96 C468.73,293.25 472.37,294.82 477.17,296.52 C485.55,299.49 488.49,302.75 486,306.28 C483.92,309.22 477.96,312.2 468.16,315.46 C459.71,318.28 452.68,317.81 446.73,314.56 C442.08,312.01 438.4,308.06 434.58,302.26 C431.68,297.85 431.85,294.06 434.74,291.2 C437.22,288.75 441.61,287.13 446.94,286.5 L446.94,286.49 Z M447.06,287.49 C441.93,288.09 437.73,289.65 435.44,291.91 C432.91,294.41 432.76,297.68 435.42,301.71 C439.15,307.39 442.72,311.22 447.22,313.68 C452.92,316.79 459.65,317.25 467.84,314.52 C477.43,311.32 483.28,308.4 485.18,305.7 C487.12,302.95 484.68,300.25 476.83,297.46 C471.99,295.74 468.33,294.16 463.55,291.86 C457.71,289.05 457.13,288.79 455.05,288.15 C452.464279,287.344562 449.73276,287.119211 447.05,287.49 L447.06,287.49 Z M202.5,501.38 C202.5,506.16 201.05,508.94 198.07,510.31 C195.78,511.36 193.52,511.54 187.28,511.51 L185.5,511.5 C176.31,511.5 168.5,503.85 168.5,496 C168.5,488.41 179.1,485.49 188.24,490.56 C191.02,492.11 192.45,492.5 196.81,493.31 C201.25,494.14 202.5,495.58 202.5,501.38 Z M201.5,501.38 C201.5,496.08 200.6,495.04 196.62,494.3 C192.17,493.47 190.66,493.05 187.76,491.44 C179.19,486.68 169.5,489.34 169.5,496 C169.5,503.3 176.86,510.5 185.5,510.5 L187.29,510.5 C193.35,510.54 195.55,510.36 197.65,509.4 C200.25,508.2 201.5,505.8 201.5,501.38 Z M234.83,383.53 C238.54,382.22 243.53,380.83 250.93,378.98 C253.51,378.33 267.46,374.94 271.49,373.93 C291.08,369 303.04,365.03 309.72,360.58 C324.65,350.63 346.59,326.7 353.55,312.78 C355.8,308.28 358.2,306.4 361.23,306.53 C362.49,306.59 363.84,306.98 365.55,307.73 C366.751466,308.250838 367.932347,308.817928 369.09,309.43 L370.35,310.06 C375.13,312.4 378.73,313.5 383,313.5 C390.2,313.5 393.01,316.57 391.35,321.41 C389.95,325.47 385.43,330.32 380.25,333.43 C371.95,338.41 368.5,350.73 368.5,367 C368.5,370.59 367.13,373.28 364.52,375.36 C362.54,376.94 360.32,377.96 356.05,379.52 L355.03,379.89 C350.18,381.64 348.05,382.66 346.35,384.35 C341.26,389.45 333.81,391.5 326,391.5 C324.62,391.5 323.53,392.42 322.01,394.6 C321.72,395.01 320.69,396.55 320.54,396.78 C317.86,400.7 315.61,402.5 312,402.5 C304.16,402.5 301.26,403.43 290.24,409.44 C285.06,412.26 281.44,413.02 275.58,413.12 C275.32,413.12 275.11,413.12 274.66,413.14 C269.84,413.2 267.54,413.44 264.15,414.48 C261.112362,415.471966 258.142715,416.661161 255.26,418.04 C253.09,419.04 244.73,423.05 245.03,422.91 C237.24,426.61 231.71,428.89 226.13,430.48 C213.72,434.03 207.55,432.72 198.71,426.41 C196.13,424.56 195.99,421.98 197.88,418.79 C199.33,416.34 201.78,413.7 205.96,409.82 L207.74,408.18 C211.66,404.58 212.22,404.07 213.64,402.65 C215.96,400.33 216.76,399.15 219.12,395.02 C221.05,391.66 222.49,389.91 225.39,387.96 C227.69,386.42 230.73,384.98 234.83,383.53 Z M235.17,384.47 C231.14,385.89 228.17,387.3 225.95,388.79 C223.2,390.64 221.85,392.28 219.99,395.52 C217.59,399.72 216.75,400.96 214.35,403.35 C212.92,404.79 212.35,405.31 208.41,408.92 L206.64,410.55 C202.54,414.37 200.12,416.96 198.74,419.3 C197.09,422.09 197.2,424.1 199.29,425.6 C207.89,431.74 213.75,432.98 225.86,429.52 C231.36,427.95 236.86,425.68 244.6,422.01 C244.3,422.15 252.66,418.13 254.84,417.13 C257.76169,415.734975 260.771439,414.532411 263.85,413.53 C267.36,412.44 269.74,412.2 274.65,412.13 L275.56,412.13 C281.28,412.03 284.74,411.3 289.76,408.56 C300.92,402.48 303.96,401.5 312,401.5 C315.19,401.5 317.2,399.9 319.71,396.22 L321.19,394.02 C322.89,391.59 324.19,390.5 326,390.5 C333.57,390.5 340.78,388.5 345.65,383.65 C347.48,381.81 349.69,380.75 354.69,378.95 L355.71,378.58 C364.31,375.45 367.5,372.91 367.5,367 C367.5,350.4 371.03,337.8 379.74,332.57 C384.74,329.57 389.09,324.9 390.4,321.09 C391.82,316.96 389.57,314.5 383,314.5 C378.55,314.5 374.81,313.36 369.91,310.96 C362.39,307.29 363.13,307.62 361.19,307.53 C358.61,307.43 356.54,309.05 354.45,313.23 C347.41,327.3 325.35,351.37 310.28,361.42 C303.47,365.96 291.44,369.94 271.73,374.9 C267.7,375.92 253.75,379.3 251.17,379.95 C243.8,381.79 238.84,383.18 235.17,384.47 Z M252,388.5 C254.08,388.5 256,388.3 259.25,387.81 C264.47,387.04 265.89,386.91 267.71,387.31 C270.23,387.87 271.5,389.66 271.5,393 C271.5,397.05 269.23,400.29 264.88,403.11 C261.64,405.21 258.35,406.64 250.73,409.51 L250.46,409.61 L248.18,410.47 C245.14,411.63 242.91,412.99 238.85,415.9 L238.05,416.47 C229.86,422.35 224.7,424.5 215,424.5 C210.02,424.5 208.12,422.47 209.25,418.88 C210.12,416.07 212.83,412.32 217.05,407.75 C218.31,406.38 219.69,404.95 221.2,403.45 C224.37,400.31 232.45,392.84 232.65,392.65 C233.11,392.18 233.58,391.76 234.05,391.39 C237.43,388.68 239.82,388.31 248.23,388.46 C249.88,388.49 250.86,388.5 252,388.5 Z M252,389.5 C250.85,389.5 249.87,389.49 248.21,389.46 C240.03,389.32 237.81,389.66 234.67,392.17 C234.23,392.52 233.79,392.91 233.35,393.35 C233.15,393.56 225.05,401.04 221.9,404.17 C220.495568,405.559591 219.121902,406.979935 217.78,408.43 C213.66,412.9 211.02,416.55 210.2,419.18 C209.3,422.06 210.65,423.5 215,423.5 C224.46,423.5 229.44,421.43 237.46,415.66 L238.26,415.09 C242.39,412.13 244.68,410.73 247.82,409.53 L250.12,408.67 L250.37,408.57 C257.92,405.73 261.17,404.32 264.34,402.27 C268.42,399.62 270.5,396.67 270.5,393 C270.5,390.11 269.53,388.74 267.5,388.3 C265.85,387.93 264.45,388.05 259.4,388.8 C256.1,389.3 254.14,389.5 252,389.5 Z M364.47,344.16 C362.59,349.6 362.49,350.92 363.49,356.92 C364.67,363.98 362.11,373.5 358,373.5 C357.495874,373.500787 356.992036,373.524143 356.49,373.57 L355.85,373.61 C352.99,373.79 351.02,373.78 348.91,373.44 C342.36,372.38 338.5,368.3 338.5,360 C338.5,346.1 340.64,340.31 346.63,333.67 C347.597039,332.510222 348.441531,331.253537 349.15,329.92 C349.74,328.89 351.93,324.79 351.87,324.91 C356.31,316.77 359.58,313.38 364.12,314.51 C365.29,314.81 366.32,315.28 367.7,316.1 L369.09,316.94 C370.074758,317.562608 371.112036,318.097978 372.19,318.54 C372.89,318.81 373.99,318.86 376.94,318.8 L377.66,318.79 C380.82,318.74 382.44,318.87 383.49,319.45 C385.1,320.34 384.69,322.01 382.35,324.35 C381.079025,325.619342 379.792258,326.872773 378.49,328.11 C367.89,338.21 365.74,340.51 364.47,344.16 Z M363.53,343.84 C364.87,339.94 366.99,337.67 377.8,327.38 C379.35,325.91 380.53,324.76 381.65,323.65 C383.59,321.7 383.82,320.77 383,320.32 C382.18,319.87 380.63,319.74 377.68,319.79 L376.96,319.8 C373.82,319.86 372.7,319.82 371.82,319.46 C370.76,319.05 369.85,318.56 368.57,317.79 L367.19,316.96 C366.166663,316.306716 365.050833,315.811167 363.88,315.49 C360,314.52 356.96,317.66 352.75,325.39 C352.82,325.26 350.61,329.37 350.02,330.41 C349.275572,331.805376 348.387419,333.119171 347.37,334.33 C341.56,340.8 339.5,346.33 339.5,360 C339.5,367.79 342.98,371.47 349.07,372.45 C351.08,372.78 352.99,372.79 355.78,372.61 C356.190038,372.587347 356.600039,372.564013 357.01,372.54 C357.43,372.51 357.74,372.5 358,372.5 C361.2,372.5 363.6,363.6 362.5,357.08 C361.48,350.92 361.59,349.44 363.53,343.84 Z M354.27,356.26 C354.85,356.78 356.77,358.16 356.82,358.19 C358.78,359.76 358.86,361.5 356.83,364.55 C353.09,370.19 348,367.64 348,360 C348,356.19 348.51,354.33 350.07,353.98 C351.25,353.72 352.07,354.28 354.27,356.26 Z M352.93,357.74 C351.43,356.39 350.7,355.89 350.5,355.94 C350.33,355.97 350,357.17 350,360 C350,365.87 352.67,367.21 355.17,363.45 C356.67,361.19 356.64,360.61 355.57,359.75 C355.6,359.78 353.62,358.35 352.93,357.75 L352.93,357.74 Z M575.83,227.55 C578.03,226.45 579.5,225.89 581.71,225.19 L581.99,225.1 C585.028015,224.204017 587.971834,223.015103 590.78,221.55 C594.95,219.47 597.13,219.67 597.74,222.39 C598.18,224.39 597.94,226.4 596.49,235.09 C594.22,248.71 587.33,261.23 575.32,271.39 C571.02,275.02 567.91,275.78 565.57,273.83 C563.69,272.26 562.47,269.26 560.96,263.35 C560.66,262.2 559.53,257.52 559.24,256.39 C558.466459,253.279997 557.562325,250.20394 556.53,247.17 C554.13,240.35 553.5,236.39 554.43,234.23 C555.2,232.4 556.51,231.99 560.03,231.78 C561.52,231.69 562.12,231.64 563,231.5 L564.95,231.17 C565.67,231.05 566.17,230.97 566.63,230.88 C567.73,230.68 568.55,230.5 569.34,230.28 C571.04,229.79 572.76,229.08 575.83,227.55 Z M576.27,228.45 C573.16,229.99 571.39,230.74 569.62,231.24 C568.78,231.47 567.93,231.66 566.81,231.87 C565.543828,232.10253 564.273628,232.312563 563,232.5 C562.23,232.63 561.61,232.69 560.08,232.78 C556.95,232.96 555.91,233.29 555.34,234.63 C554.56,236.47 555.14,240.25 557.47,246.83 C558.513794,249.893439 559.427939,252.999531 560.21,256.14 L561.93,263.1 C563.39,268.8 564.55,271.68 566.21,273.06 C568.08,274.62 570.7,273.99 574.68,270.62 C586.5,260.62 593.28,248.32 595.51,234.92 C596.91,226.47 597.16,224.41 596.76,222.61 C596.35,220.74 594.9,220.61 591.22,222.45 C588.366413,223.935214 585.375812,225.140832 582.29,226.05 L582.01,226.15 C580.033241,226.747769 578.112582,227.517371 576.27,228.45 Z M571.77,235.03 C573.14,234.71 574.27,234.28 575.67,233.61 C576.02,233.43 578.24,232.3 578.99,231.94 C580.49,231.23 581.96,230.63 583.69,230.05 C586.39,229.15 588.33,229.28 589.57,230.45 C590.55,231.39 590.91,232.71 590.98,234.63 C591,235.03 591,235.33 591,236 C591,241.63 586.37,252.88 579.66,258.75 C575.32,262.55 572.35,263.42 569.74,261.27 C567.68,259.57 566.24,256.62 563.07,248.36 C561.21,243.53 561.02,240.26 562.39,238.16 C563.51,236.46 565.29,235.8 568.22,235.46 L569.48,235.34 C570.67,235.22 571.23,235.15 571.78,235.03 L571.77,235.03 Z M569.67,237.33 L568.45,237.45 C566.05,237.72 564.75,238.21 564.06,239.26 C563.13,240.69 563.28,243.36 564.93,247.64 C567.95,255.48 569.34,258.35 571.01,259.73 C572.64,261.07 574.65,260.48 578.34,257.25 C584.6,251.77 589,241.08 589,236 C589,235.36 589,235.07 588.98,234.71 C588.93,233.27 588.68,232.38 588.19,231.91 C587.59,231.34 586.39,231.26 584.32,231.95 C582.793373,232.4547 581.300364,233.055912 579.85,233.75 C579.13,234.09 576.92,235.22 576.53,235.41 C575.162685,236.096554 573.719465,236.620141 572.23,236.97 C571.57,237.13 570.95,237.21 569.67,237.33 Z M341.94,148.35 C340.35,152.65 338.4,155.6 334.8,159.75 L332.2,162.72 C331.290079,163.769158 330.412989,164.846344 329.57,165.95 C327.774856,168.295354 326.207745,170.806749 324.89,173.45 C322.04,179.15 317.75,183.63 312.04,187.34 C307.79,190.1 303.79,191.96 296.37,194.93 C285.36,199.33 279.94,196.19 269.15,178.53 C266.29,173.84 260.35,169.9 251.17,165.87 C248.17,164.54 238.29,160.63 236.74,159.95 C231.78,157.77 229.7,156.23 230.32,154.1 C230.99,151.78 235.62,150.05 245.8,148.02 C262.43,144.7 272.73,144.2 285.73,145 C293.63,145.49 295.4,145.5 298.47,144.74 C300.46,144.26 302.39,143.44 304.47,142.14 L307.26,140.43 C317.12,134.29 320.2,132.47 324.56,130.53 C330.59,127.82 335.13,127.21 338.5,129.13 C345.7,133.25 346.18,136.83 341.94,148.35 Z M340.06,147.65 C344.01,136.95 343.66,134.39 337.5,130.87 C334.84,129.35 330.88,129.88 325.38,132.35 C321.14,134.25 318.08,136.05 308.31,142.12 L305.52,143.85 C303.494763,145.139651 301.276955,146.098338 298.95,146.69 C295.59,147.5 293.73,147.49 285.61,146.99 C272.77,146.21 262.64,146.7 246.2,149.99 C241.3,150.96 237.75,151.87 235.41,152.74 C233.38,153.5 232.37,154.19 232.24,154.65 C232.08,155.22 233.72,156.44 237.54,158.11 C239.04,158.78 248.93,162.69 251.98,164.04 C261.5,168.23 267.72,172.34 270.85,177.48 C281.2,194.41 285.72,197.04 295.63,193.08 C302.93,190.15 306.84,188.33 310.96,185.66 C316.38,182.13 320.43,177.91 323.11,172.56 C324.55,169.66 326.13,167.16 327.97,164.74 C328.841828,163.601993 329.748936,162.491454 330.69,161.41 L333.29,158.44 C336.75,154.45 338.57,151.69 340.06,147.65 Z M333.42,147.26 C325.48,160.06 314.89,169.01 300.12,172.49 C292.3,174.32 287.65,171.7 287,166.56 C286.45,162.11 289.29,157.5 293,157.5 C296.02,157.5 298.6,155.82 308.38,148.34 C309.85,147.22 310.95,146.38 312.04,145.6 C316.44,142.4 319.81,140.43 322.86,139.52 C328.43,137.85 332.19,137.37 334.21,138.3 C336.71,139.44 336.43,142.43 333.42,147.26 Z M332.58,146.74 C335.3,142.34 335.52,140 333.79,139.21 C332.08,138.42 328.47,138.88 323.14,140.48 C320.24,141.35 316.94,143.27 312.63,146.4 C311.55,147.19 310.45,148.02 308.98,149.14 C298.9,156.86 296.36,158.5 293,158.5 C289.98,158.5 287.5,162.52 288,166.44 C288.56,170.94 292.62,173.22 299.89,171.51 C314.37,168.11 324.75,159.33 332.58,146.74 Z M461.17,34.53 C475.05,39.49 481.92,39.49 492.79,34.54 C495.81,33.17 498.26,31.6 503.79,27.72 C509.36,23.8 511.84,22.21 514.93,20.8 C519.07,18.92 522.71,18.42 526.15,19.52 C530.07,20.78 532.35,31.82 532.93,47.97 C533.43,62.17 532.41,76.9 530.47,82.17 C528.65,87.1 524.61,90.34 518.96,92.19 C514.762718,93.4750072 510.388865,94.0892365 506,94.01 C500.21,94.01 497,96.41 493.8,101.65 C493.43,102.24 492.25,104.25 492.09,104.52 C490.34,107.42 489.04,108.85 487.16,109.47 C486.22,109.79 485.09,110.3 483.29,111.21 L480.86,112.44 C479.83,112.97 478.99,113.38 478.16,113.78 C471.73,116.88 466.43,118.5 461,118.5 C455.29,118.5 450.96,120.59 446.98,124.42 C445.82,125.53 442.78,128.95 442.35,129.36 C439.81,131.8 436.42,133.6 431.5,135.46 C430.1,135.98 425.52,137.59 425.25,137.68 L423.19,138.46 C422.3,138.82 421.41,139.09 420.49,139.27 C414.94,140.41 409.35,138.73 402.51,134.85 C401.24,134.12 397.38,131.79 396.75,131.43 C394.7,130.27 392.63,129.9 387.66,129.53 L385.93,129.38 C381.15,128.98 378.25,128.24 375.71,126.41 C370.71,122.8 368.94,118.65 370.06,114.08 C371.39,108.66 376.56,103.06 384.91,96.8 C387.040175,95.2125175 389.207443,93.6754247 391.41,92.19 C391.08,92.42 395.74,89.27 396.71,88.59 C399.44,86.68 401.51,84.69 409.46,76.55 L410.55,75.45 C414.04,71.89 416.44,69.56 418.67,67.62 C421.57,65.12 423.39,61.67 426.17,54.57 L426.8,52.96 C429.5,46.04 431.08,42.96 433.67,40.63 C435.09,39.35 440.35,34.09 441.6,33.13 C445.58,30.13 449.61,30.4 461.17,34.53 Z M460.83,35.47 C449.57,31.45 445.83,31.19 442.21,33.94 C441.02,34.84 435.81,40.05 434.33,41.37 C431.91,43.55 430.37,46.56 427.73,53.32 L427.1,54.93 C424.27,62.19 422.38,65.73 419.33,68.38 C416.145257,71.1978718 413.088836,74.1575277 410.17,77.25 C402.15,85.45 400.09,87.45 397.29,89.41 C396.3,90.1 391.64,93.25 391.98,93.01 C389.48,94.72 387.46,96.14 385.51,97.6 C377.34,103.73 372.28,109.2 371.03,114.32 C370.01,118.47 371.61,122.22 376.29,125.59 C378.65,127.29 381.4,127.99 386.01,128.39 L387.74,128.52 C392.86,128.92 395.02,129.3 397.24,130.57 C397.89,130.93 401.74,133.27 403,133.97 C409.66,137.75 415.04,139.37 420.29,138.29 C421.15,138.12 421.99,137.87 422.81,137.54 C423.505478,137.261612 424.205577,136.994908 424.91,136.74 C425.19,136.64 429.77,135.04 431.15,134.52 C435.95,132.72 439.23,130.96 441.65,128.64 C442.05,128.26 445.09,124.84 446.28,123.7 C450.44,119.7 455,117.5 461,117.5 C466.25,117.5 471.42,115.91 477.73,112.88 C478.55,112.48 479.38,112.08 480.41,111.55 C480.53,111.49 482.34,110.56 482.84,110.32 C484.68,109.39 485.84,108.86 486.84,108.52 C488.44,108 489.6,106.7 491.23,104 L492.93,101.12 C496.32,95.62 499.8,93.01 506,93.01 C510.45,93.01 514.73,92.52 518.64,91.24 C524.04,89.48 527.84,86.44 529.54,81.83 C531.41,76.72 532.44,62.08 531.93,48 C531.37,32.47 529.12,21.52 525.85,20.48 C522.67,19.46 519.28,19.93 515.35,21.71 C512.33,23.08 509.88,24.65 504.35,28.54 C498.78,32.46 496.3,34.04 493.21,35.46 C482.08,40.51 474.95,40.51 460.83,35.47 Z M475,56 C480.38,56 482.55,55.79 484.72,55.04 C485.98,54.61 494.67,50.24 499.6,48.08 C501.5,47.26 503.16,45.64 506.2,42.04 C508.76,39 509.39,38.29 510.6,37.2 C514.3,33.85 517.67,33.92 520.82,38.43 C527.05,47.33 526.43,54.37 520.89,65.45 C519.979804,67.2406154 519.145726,69.0689148 518.39,70.93 C518.07,71.73 517.39,73.63 517.3,73.83 C517.13,74.28 516.96,74.64 516.76,75 C516.13,76.14 515.2,77.21 512.71,79.7 C510.31,82.1 507.55,82.97 501.03,84.03 C499.22,84.33 498.83,84.39 498.03,84.54 C492.01,85.64 488.43,87.23 485.79,90.61 C482.22,95.2 477.89,98.09 470.81,101.35 C470.26,101.59 469.71,101.85 469.01,102.15 L467.23,102.95 C464.57315,104.063711 461.999845,105.367074 459.53,106.85 C456.96,108.45 454.74,109.2 450.11,110.31 C441.53,112.37 437.83,114.07 432.74,119.67 C427.62,125.31 422.57,127.31 416.11,126.37 C410.75,125.58 405.48,123.36 392.55,116.89 C386.25,113.74 386.12,109.11 391.05,103.33 C394.43,99.39 394.57,99.27 410.45,86.89 C418.57,80.56 423.42,76.32 427.08,72.01 C429.61,69.03 431.28,66.28 432.04,63.71 C437.54,45.41 444.54,41.73 454.82,48.15 C456.77,49.37 461.43,52.7 462,53.05 C465.36,55.2 468.52,56 475,56 Z M475,58 C468.16,58 464.63,57.11 460.92,54.74 C460.29,54.34 455.65,51.03 453.76,49.84 C444.71,44.19 439.1,47.14 433.96,64.29 C433.1,67.16 431.29,70.14 428.61,73.3 C424.83,77.75 419.91,82.05 411.67,88.47 C396.01,100.68 395.81,100.85 392.57,104.63 C388.4,109.53 388.48,112.63 393.45,115.11 C406.16,121.46 411.34,123.65 416.39,124.39 C422.17,125.23 426.57,123.49 431.26,118.33 C436.68,112.37 440.71,110.51 449.64,108.37 C454.07,107.3 456.14,106.61 458.47,105.15 C461.016449,103.620619 463.670016,102.277125 466.41,101.13 L468.19,100.33 L469.97,99.53 C476.79,96.4 480.88,93.66 484.21,89.39 C487.21,85.52 491.21,83.75 497.67,82.57 C498.5,82.42 498.88,82.36 500.71,82.06 C506.81,81.06 509.31,80.28 511.29,78.29 C513.65,75.93 514.5,74.95 515.01,74.03 C515.16,73.76 515.3,73.47 515.45,73.09 C515.51,72.94 516.2,71.03 516.54,70.19 C517.18,68.59 517.99,66.79 519.11,64.55 C524.35,54.06 524.91,47.75 519.18,39.57 C516.78,36.13 514.81,36.09 511.94,38.68 C510.83,39.68 510.21,40.38 507.72,43.33 C504.48,47.18 502.68,48.92 500.4,49.92 C495.58,52.02 486.78,56.45 485.37,56.93 C482.93,57.77 480.58,58 475,58 Z M462.3,66.6 C467.77,70.5 472.64,70.32 480.53,67.48 C485.92,65.54 486.45,65.38 488.23,65.38 C490.73,65.37 492.44,66.74 493.47,69.84 C495.13,74.82 491.15,78.36 481.17,82.52 C478.47,83.65 464.92,88.7 461.17,90.25 C453.31,93.49 447.24,96.67 442.3,100.4 C429.28,110.24 423.94,112.33 418.59,110.08 C417.33016,109.522244 416.11926,108.859928 414.97,108.1 L412.98,106.82 C412.240192,106.342449 411.493445,105.875732 410.74,105.42 C407.41,103.42 407.92,101.14 411.59,98.08 C412.94,96.95 422.25,90.47 425.12,88.17 C432.22,82.48 437.03,76.7 439.53,69.83 C442.6,61.38 444.42,57.73 446.33,56.44 C448.06,55.28 449.69,55.91 452.51,58.34 C453.14,58.9 455.91,61.42 456.62,62.04 C458.55,63.74 460.33,65.19 462.29,66.59 L462.3,66.6 Z M461.7,67.4 C459.72,65.98 457.91,64.52 455.96,62.8 C455.23,62.16 452.48,59.64 451.86,59.1 C449.36,56.94 448.11,56.45 446.89,57.27 C445.23,58.38 443.45,61.97 440.47,70.17 C437.9,77.24 432.97,83.16 425.75,88.95 C422.84,91.28 413.54,97.75 412.23,98.85 C409.01,101.53 408.67,103.02 411.26,104.57 L413.52,105.97 L415.51,107.25 C416.98,108.18 417.99,108.75 418.98,109.16 C423.88,111.23 428.94,109.23 441.7,99.6 C446.72,95.81 452.85,92.6 460.8,89.32 C464.56,87.77 478.1,82.72 480.8,81.6 C490.3,77.63 493.94,74.4 492.53,70.16 C491.63,67.45 490.28,66.36 488.23,66.37 C486.63,66.37 486.08,66.54 480.87,68.42 C472.7,71.36 467.53,71.56 461.71,67.41 L461.7,67.4 Z"></path>
includes/shapes/triangle.svg.php ADDED
@@ -0,0 +1 @@
 
1
+ <polygon class="fl-shape" points="25,34 0,0 50,0"></polygon>
includes/shapes/triangles.svg.php ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <g class="fl-shape">
2
+ <?php
3
+ for ( $i = 0; $i <= 64; $i++ ) {
4
+ $offset = $i * 50;
5
+ ?>
6
+ <polygon points="<?php echo $offset + 25 ?>,34 <?php echo $offset ?>,0 <?php echo $offset + 50 ?>,0"></polygon>
7
+ <?php } ?>
8
+ </g>
includes/shapes/wavy.svg.php ADDED
@@ -0,0 +1 @@
 
1
+ <path class="fl-shape" d="M0,0 L800,0 C717.140625,0 726.058594,62.0585937 669.660156,62.0585937 C613.261719,62.0585937 604.234948,10.4922726 561.091797,10.4922726 C517.948646,10.4922726 522.667969,72.7050942 462.202976,54.171875 C401.737983,35.6386558 410.177721,100 372.386628,100 C334.595534,100 319.909894,54.171875 292.280298,54.171875 C264.650702,54.171875 259.270492,78.4116686 220.022711,72.7050942 C180.774931,66.9985197 179.391645,18.53125 120.752463,33.0078125 C62.1132812,47.484375 94.9472656,0 0,0 Z"></path>
includes/ui-field-align.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <#
2
+
3
+ var defaults = {
4
+ left: '<i class="dashicons dashicons-editor-alignleft"></i>',
5
+ center: '<i class="dashicons dashicons-editor-aligncenter"></i>',
6
+ right: '<i class="dashicons dashicons-editor-alignright"></i>',
7
+ };
8
+
9
+ var values = data.field.values;
10
+ var options = {};
11
+
12
+ if ( values ) {
13
+ for ( var option in defaults ) {
14
+ if ( values[ option ] ) {
15
+ options[ values[ option ] ] = defaults[ option ];
16
+ }
17
+ }
18
+ } else {
19
+ options = defaults;
20
+ }
21
+
22
+ var field = wp.template( 'fl-builder-field-button-group' )( {
23
+ name: data.name,
24
+ value: data.value,
25
+ field: {
26
+ options: options,
27
+ },
28
+ } );
29
+
30
+ #>
31
+ {{{field}}}
includes/ui-field-animation.php ADDED
@@ -0,0 +1,143 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <#
2
+
3
+ var defaults = {
4
+ style: '',
5
+ delay: 0.0,
6
+ duration: 1.0,
7
+ };
8
+
9
+ var value = '' === data.value ? defaults : jQuery.extend( true, defaults, data.value );
10
+
11
+ #>
12
+ <?php
13
+
14
+ $styles = array(
15
+ '' => _x( 'None', 'Animation style.', 'fl-builder' ),
16
+ 'fade' => array(
17
+ 'label' => _x( 'Fade', 'Animation style.', 'fl-builder' ),
18
+ 'options' => array(
19
+ 'fade-in' => _x( 'Fade In', 'Animation style.', 'fl-builder' ),
20
+ 'fade-left' => _x( 'Fade Left', 'Animation style.', 'fl-builder' ),
21
+ 'fade-right' => _x( 'Fade Right', 'Animation style.', 'fl-builder' ),
22
+ 'fade-up' => _x( 'Fade Up', 'Animation style.', 'fl-builder' ),
23
+ 'fade-down' => _x( 'Fade Down', 'Animation style.', 'fl-builder' ),
24
+ ),
25
+ ),
26
+ 'slide' => array(
27
+ 'label' => _x( 'Slide', 'Animation style.', 'fl-builder' ),
28
+ 'options' => array(
29
+ 'slide-in-left' => _x( 'Slide Left', 'Animation style.', 'fl-builder' ),
30
+ 'slide-in-right' => _x( 'Slide Right', 'Animation style.', 'fl-builder' ),
31
+ 'slide-in-up' => _x( 'Slide Up', 'Animation style.', 'fl-builder' ),
32
+ 'slide-in-down' => _x( 'Slide Down', 'Animation style.', 'fl-builder' ),
33
+ ),
34
+ ),
35
+ 'zoom' => array(
36
+ 'label' => _x( 'Zoom', 'Animation style.', 'fl-builder' ),
37
+ 'options' => array(
38
+ 'zoom-in' => _x( 'Zoom In', 'Animation style.', 'fl-builder' ),
39
+ 'zoom-left' => _x( 'Zoom Left', 'Animation style.', 'fl-builder' ),
40
+ 'zoom-right' => _x( 'Zoom Right', 'Animation style.', 'fl-builder' ),
41
+ 'zoom-up' => _x( 'Zoom Up', 'Animation style.', 'fl-builder' ),
42
+ 'zoom-down' => _x( 'Zoom Down', 'Animation style.', 'fl-builder' ),
43
+ ),
44
+ ),
45
+ 'bounce' => array(
46
+ 'label' => _x( 'Bounce', 'Animation style.', 'fl-builder' ),
47
+ 'options' => array(
48
+ 'bounce' => _x( 'Bounce', 'Animation style.', 'fl-builder' ),
49
+ 'bounce-in' => _x( 'Bounce In', 'Animation style.', 'fl-builder' ),
50
+ 'bounce-left' => _x( 'Bounce Left', 'Animation style.', 'fl-builder' ),
51
+ 'bounce-right' => _x( 'Bounce Right', 'Animation style.', 'fl-builder' ),
52
+ 'bounce-up' => _x( 'Bounce Up', 'Animation style.', 'fl-builder' ),
53
+ 'bounce-down' => _x( 'Bounce Down', 'Animation style.', 'fl-builder' ),
54
+ ),
55
+ ),
56
+ 'rotate' => array(
57
+ 'label' => _x( 'Rotate', 'Animation style.', 'fl-builder' ),
58
+ 'options' => array(
59
+ 'rotate-in' => _x( 'Rotate In', 'Animation style.', 'fl-builder' ),
60
+ 'rotate-down-left' => _x( 'Rotate Down Left', 'Animation style.', 'fl-builder' ),
61
+ 'rotate-down-right' => _x( 'Rotate Down Right', 'Animation style.', 'fl-builder' ),
62
+ 'rotate-up-left' => _x( 'Rotate Up Left', 'Animation style.', 'fl-builder' ),
63
+ 'rotate-up-right' => _x( 'Rotate Up Right', 'Animation style.', 'fl-builder' ),
64
+ ),
65
+ ),
66
+ 'flip' => array(
67
+ 'label' => _x( 'Flip', 'Animation style.', 'fl-builder' ),
68
+ 'options' => array(
69
+ 'flip-vertical' => _x( 'Flip Vertical', 'Animation style.', 'fl-builder' ),
70
+ 'flip-horizontal' => _x( 'Flip Horizontal', 'Animation style.', 'fl-builder' ),
71
+ ),
72
+ ),
73
+ 'fancy' => array(
74
+ 'label' => _x( 'Fancy', 'Animation style.', 'fl-builder' ),
75
+ 'options' => array(
76
+ 'fancy-flash' => _x( 'Flash', 'Animation style.', 'fl-builder' ),
77
+ 'fancy-pulse' => _x( 'Pulse', 'Animation style.', 'fl-builder' ),
78
+ 'fancy-rubber-band' => _x( 'Rubber Band', 'Animation style.', 'fl-builder' ),
79
+ 'fancy-shake' => _x( 'Shake', 'Animation style.', 'fl-builder' ),
80
+ 'fancy-swing' => _x( 'Swing', 'Animation style.', 'fl-builder' ),
81
+ 'fancy-tada' => _x( 'Tada', 'Animation style.', 'fl-builder' ),
82
+ 'fancy-wobble' => _x( 'Wobble', 'Animation style.', 'fl-builder' ),
83
+ 'fancy-jello' => _x( 'Jello', 'Animation style.', 'fl-builder' ),
84
+ 'fancy-light-speed' => _x( 'Light Speed', 'Animation style.', 'fl-builder' ),
85
+ 'fancy-jack-box' => _x( 'Jack in the Box', 'Animation style.', 'fl-builder' ),
86
+ 'fancy-roll-in' => _x( 'Roll In', 'Animation style.', 'fl-builder' ),
87
+ ),
88
+ ),
89
+ );
90
+
91
+ ?>
92
+ <#
93
+
94
+ var style = wp.template( 'fl-builder-field-select' )( {
95
+ name: data.name + '[][style]',
96
+ value: value.style,
97
+ field: {
98
+ options: <?php echo json_encode( $styles ); ?>,
99
+ },
100
+ } );
101
+
102
+ var delay = wp.template( 'fl-builder-field-unit' )( {
103
+ name: data.name + '[][delay]',
104
+ value: value.delay,
105
+ field: {
106
+ units: [ 'seconds' ],
107
+ slider: true,
108
+ },
109
+ } );
110
+
111
+ var duration = wp.template( 'fl-builder-field-unit' )( {
112
+ name: data.name + '[][duration]',
113
+ value: value.duration,
114
+ field: {
115
+ units: [ 'seconds' ],
116
+ slider: true,
117
+ },
118
+ } );
119
+
120
+ #>
121
+ <div class="fl-compound-field fl-animation-field">
122
+ <div class="fl-compound-field-section">
123
+ <div class="fl-compound-field-row">
124
+ <div class="fl-compound-field-setting fl-animation-field-style">
125
+ {{{style}}}
126
+ </div>
127
+ </div>
128
+ <div class="fl-compound-field-row">
129
+ <div class="fl-compound-field-setting fl-animation-field-delay">
130
+ {{{delay}}}
131
+ <label class="fl-compound-field-label fl-compound-field-label-bottom">
132
+ <?php _e( 'Delay', 'fl-builder' ); ?>
133
+ </label>
134
+ </div>
135
+ <div class="fl-compound-field-setting fl-animation-field-duration">
136
+ {{{duration}}}
137
+ <label class="fl-compound-field-label fl-compound-field-label-bottom">
138
+ <?php _e( 'Duration', 'fl-builder' ); ?>
139
+ </label>
140
+ </div>
141
+ </div>
142
+ </div>
143
+ </div>
includes/ui-field-border.php ADDED
@@ -0,0 +1,162 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <#
2
+
3
+ var defaults = {
4
+ style: '',
5
+ color: '',
6
+ width: {
7
+ top: '',
8
+ right: '',
9
+ bottom: '',
10
+ left: '',
11
+ },
12
+ radius: {
13
+ top_left: '',
14
+ top_right: '',
15
+ bottom_left: '',
16
+ bottom_right: '',
17
+ },
18
+ shadow: {
19
+ color: '',
20
+ horizontal: '',
21
+ vertical: '',
22
+ blur: '',
23
+ spread: '',
24
+ },
25
+ };
26
+
27
+ var value = '' === data.value ? defaults : jQuery.extend( true, defaults, data.value );
28
+
29
+ var style = wp.template( 'fl-builder-field-select' )( {
30
+ name: data.name + '[][style]',
31
+ value: value.style,
32
+ field: {
33
+ options: {
34
+ '': '<?php esc_attr_e( 'Default', 'fl-builder' ); ?>',
35
+ 'none': '<?php esc_attr_e( 'None', 'fl-builder' ); ?>',
36
+ 'solid': '<?php esc_attr_e( 'Solid', 'fl-builder' ); ?>',
37
+ 'dashed': '<?php esc_attr_e( 'Dashed', 'fl-builder' ); ?>',
38
+ 'dotted': '<?php esc_attr_e( 'Dotted', 'fl-builder' ); ?>',
39
+ 'double': '<?php esc_attr_e( 'Double', 'fl-builder' ); ?>',
40
+ },
41
+ },
42
+ } );
43
+
44
+ var color = wp.template( 'fl-builder-field-color' )( {
45
+ name: data.name + '[][color]',
46
+ value: value.color,
47
+ field: {
48
+ className: 'fl-border-field-color',
49
+ show_reset: true,
50
+ show_alpha: true,
51
+ },
52
+ } );
53
+
54
+ var width = wp.template( 'fl-builder-field-dimension' )( {
55
+ name: data.name,
56
+ rootName: data.name,
57
+ names: {
58
+ top: data.name + '[][width][top]',
59
+ right: data.name + '[][width][right]',
60
+ bottom: data.name + '[][width][bottom]',
61
+ left: data.name + '[][width][left]',
62
+ },
63
+ values: {
64
+ top: value.width.top,
65
+ right: value.width.right,
66
+ bottom: value.width.bottom,
67
+ left: value.width.left,
68
+ },
69
+ field: {
70
+ units: [ 'px' ],
71
+ slider: true,
72
+ },
73
+ } );
74
+
75
+ var radius = wp.template( 'fl-builder-field-dimension' )( {
76
+ name: data.name,
77
+ rootName: data.name,
78
+ names: {
79
+ top_left: data.name + '[][radius][top_left]',
80
+ top_right: data.name + '[][radius][top_right]',
81
+ bottom_left: data.name + '[][radius][bottom_left]',
82
+ bottom_right: data.name + '[][radius][bottom_right]',
83
+ },
84
+ values: {
85
+ top_left: value.radius.top_left,
86
+ top_right: value.radius.top_right,
87
+ bottom_left: value.radius.bottom_left,
88
+ bottom_right: value.radius.bottom_right,
89
+ },
90
+ field: {
91
+ units: [ 'px' ],
92
+ slider: true,
93
+ keys: {
94
+ top_left: '<?php esc_attr_e( 'Left', 'fl-builder' ); ?>',
95
+ top_right: '<?php esc_attr_e( 'Right', 'fl-builder' ); ?>',
96
+ bottom_left: '<?php esc_attr_e( 'Left', 'fl-builder' ); ?>',
97
+ bottom_right: '<?php esc_attr_e( 'Right', 'fl-builder' ); ?>',
98
+ },
99
+ },
100
+ } );
101
+
102
+ var shadow = wp.template( 'fl-builder-field-shadow' )( {
103
+ name: data.name + '[][shadow]',
104
+ value: value.shadow,
105
+ field: {
106
+ show_spread: true,
107
+ },
108
+ } );
109
+
110
+ #>
111
+ <div class="fl-compound-field fl-border-field">
112
+ <div class="fl-compound-field-section fl-border-field-section-general">
113
+ <div class="fl-compound-field-section-toggle">
114
+ <i class="dashicons dashicons-arrow-right-alt2"></i>
115
+ <?php _e( 'General', 'fl-builder' ); ?>
116
+ </div>
117
+ <div class="fl-compound-field-row">
118
+ <div class="fl-compound-field-setting fl-border-field-style" data-property="border-style">
119
+ <label class="fl-compound-field-label">
120
+ <?php _e( 'Style', 'fl-builder' ); ?>
121
+ </label>
122
+ {{{style}}}
123
+ </div>
124
+ <div class="fl-compound-field-setting fl-border-field-color" data-property="border-color">
125
+ <label class="fl-compound-field-label">
126
+ <?php _e( 'Color', 'fl-builder' ); ?>
127
+ </label>
128
+ {{{color}}}
129
+ </div>
130
+ </div>
131
+ <div class="fl-compound-field-row">
132
+ <div class="fl-compound-field-setting fl-border-field-width" data-property="border-width">
133
+ <label class="fl-compound-field-label">
134
+ <?php _e( 'Width', 'fl-builder' ); ?>
135
+ </label>
136
+ {{{width}}}
137
+ </div>
138
+ </div>
139
+ </div>
140
+ <div class="fl-compound-field-section fl-border-field-section-radius">
141
+ <div class="fl-compound-field-section-toggle">
142
+ <i class="dashicons dashicons-arrow-right-alt2"></i>
143
+ <?php _e( 'Radius &amp; Shadow', 'fl-builder' ); ?>
144
+ </div>
145
+ <div class="fl-compound-field-row">
146
+ <div class="fl-compound-field-setting fl-border-field-radius" data-property="border-radius">
147
+ <label class="fl-compound-field-label">
148
+ <?php _e( 'Radius', 'fl-builder' ); ?>
149
+ </label>
150
+ {{{radius}}}
151
+ </div>
152
+ </div>
153
+ <div class="fl-compound-field-row">
154
+ <div class="fl-compound-field-setting fl-border-field-shadow" data-property="box-shadow">
155
+ <label class="fl-compound-field-label">
156
+ <?php _e( 'Box Shadow', 'fl-builder' ); ?>
157
+ </label>
158
+ {{{shadow}}}
159
+ </div>
160
+ </div>
161
+ </div>
162
+ </div>
includes/ui-field-button-group.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <#
2
+ var atts = "",
3
+ field = data.field;
4
+
5
+ // Toggle data
6
+ if ( field.toggle ) {
7
+ atts += " data-toggle='" + JSON.stringify( field.toggle ) + "'";
8
+ }
9
+
10
+ // Hide data
11
+ if ( field.hide ) {
12
+ atts += " data-hide='" + JSON.stringify( field.hide ) + "'";
13
+ }
14
+ #>
15
+ <div class="fl-button-group-field">
16
+ <div class="fl-button-group-field-options">
17
+ <# for ( var option in data.field.options ) {
18
+ var selected = option === data.value ? 1 : 0;
19
+ #>
20
+ <button
21
+ class="fl-button-group-field-option"
22
+ data-value="{{option}}"
23
+ data-selected="{{selected}}"
24
+ >
25
+ {{{data.field.options[ option ]}}}
26
+ </button>
27
+ <# } #>
28
+ </div>
29
+ <input type="hidden" name="{{data.name}}" value="{{data.value}}" {{{atts}}} />
30
+ <div class="fl-clear"></div>
31
+ </div>
includes/ui-field-color.php CHANGED
@@ -7,7 +7,13 @@
7
  </svg>
8
  </button>
9
  <# if ( data.field.show_reset ) { #>
10
- <button class="fl-color-picker-clear"><div class="fl-color-picker-icon-remove"></div></button>
 
 
 
 
 
 
11
  <# } #>
12
  <input name="{{data.name}}" type="hidden" value="{{{data.value}}}" class="fl-color-picker-value" />
13
  <div class="fl-clear"></div>
7
  </svg>
8
  </button>
9
  <# if ( data.field.show_reset ) { #>
10
+ <button class="fl-color-picker-clear">
11
+ <svg width="13px" height="13px" viewBox="0 0 13 13" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
12
+ <g transform="translate(-321.000000, -188.000000)">
13
+ <path d="M326.313708,193.313708 L326.313708,186.313708 L328.313708,186.313708 L328.313708,193.313708 L335.313708,193.313708 L335.313708,195.313708 L328.313708,195.313708 L328.313708,202.313708 L326.313708,202.313708 L326.313708,195.313708 L319.313708,195.313708 L319.313708,193.313708 L326.313708,193.313708 Z" transform="translate(327.313708, 194.313708) rotate(-45.000000) translate(-327.313708, -194.313708) "></path>
14
+ </g>
15
+ </svg>
16
+ </button>
17
  <# } #>
18
  <input name="{{data.name}}" type="hidden" value="{{{data.value}}}" class="fl-color-picker-value" />
19
  <div class="fl-clear"></div>
includes/ui-field-date.php ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ <input
2
+ type="date"
3
+ name="{{data.name}}"
4
+ value="{{data.value}}"
5
+ <# if ( data.field.min ) { #>min="{{data.field.min}}" <# } #>
6
+ <# if ( data.field.max ) { #>max="{{data.field.max}}" <# } #>
7
+ />
includes/ui-field-dimension.php CHANGED
@@ -1,15 +1,13 @@
1
  <#
2
 
3
- var placeholder = data.field.placeholder;
4
-
5
- if ( 'object' !== typeof placeholder ) {
6
- placeholder = {
7
- top : placeholder,
8
- right : placeholder,
9
- bottom : placeholder,
10
- left : placeholder,
11
- };
12
- }
13
 
14
  /**
15
  * We need to handle responsive dimension fields like this for backwards
@@ -18,46 +16,109 @@ if ( 'object' !== typeof placeholder ) {
18
  */
19
  var responsive = data.name.replace( data.rootName, '' );
20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
  #>
22
  <div class="fl-dimension-field-units">
 
23
  <div class="fl-dimension-field-unit">
24
  <input
25
- type="number"
26
- name="{{data.rootName}}_top{{responsive}}"
27
- value="{{data.settings[ data.rootName + '_top' + responsive ]}}"
28
- placeholder="{{placeholder.top}}"
29
- data-unit="top"
30
- />
31
- <label><?php _e( 'Top', 'fl-builder' ); ?></label>
32
- </div>
33
- <div class="fl-dimension-field-unit">
34
- <input
35
- type="number"
36
- name="{{data.rootName}}_right{{responsive}}"
37
- value="{{data.settings[ data.rootName + '_right' + responsive ]}}"
38
- placeholder="{{placeholder.right}}"
39
- data-unit="right"
40
  />
41
- <label><?php _e( 'Right', 'fl-builder' ); ?></label>
42
- </div>
43
- <div class="fl-dimension-field-unit">
44
- <input
45
- type="number"
46
- name="{{data.rootName}}_bottom{{responsive}}"
47
- value="{{data.settings[ data.rootName + '_bottom' + responsive ]}}"
48
- placeholder="{{placeholder.bottom}}"
49
- data-unit="bottom"
50
- />
51
- <label><?php _e( 'Bottom', 'fl-builder' ); ?></label>
 
 
 
 
 
 
 
 
 
 
52
  </div>
53
- <div class="fl-dimension-field-unit">
54
- <input
55
- type="number"
56
- name="{{data.rootName}}_left{{responsive}}"
57
- value="{{data.settings[ data.rootName + '_left' + responsive ]}}"
58
- placeholder="{{placeholder.left}}"
59
- data-unit="left"
60
- />
61
- <label><?php _e( 'Left', 'fl-builder' ); ?></label>
 
 
 
 
 
 
 
 
 
 
 
62
  </div>
 
63
  </div>
1
  <#
2
 
3
+ var names = data.names;
4
+ var values = data.values;
5
+ var keys = data.field.keys;
6
+ var placeholder = data.field.placeholder || '';
7
+ var units = data.field.units;
8
+ var slider = data.field.slider;
9
+ var labels = [];
10
+ var i;
 
 
11
 
12
  /**
13
  * We need to handle responsive dimension fields like this for backwards
16
  */
17
  var responsive = data.name.replace( data.rootName, '' );
18
 
19
+ /**
20
+ * Setup keys and labels if custom config doesn't exist.
21
+ */
22
+ if ( 'object' !== typeof keys ) {
23
+ keys = {
24
+ top: '<?php _e( 'Top', 'fl-builder' ); ?>',
25
+ right: '<?php _e( 'Right', 'fl-builder' ); ?>',
26
+ bottom: '<?php _e( 'Bottom', 'fl-builder' ); ?>',
27
+ left: '<?php _e( 'Left', 'fl-builder' ); ?>',
28
+ };
29
+ }
30
+
31
+ for ( i in keys ) {
32
+ labels.push( keys[ i ] );
33
+ }
34
+
35
+ keys = Object.keys( keys );
36
+
37
+ /**
38
+ * Setup input names if custom config doesn't exist.
39
+ */
40
+ if ( 'object' !== typeof names ) {
41
+ names = {};
42
+ for ( i in keys ) {
43
+ names[ keys[ i ] ] = data.rootName + '_' + keys[ i ] + responsive;
44
+ }
45
+ }
46
+
47
+ /**
48
+ * Setup values if custom config doesn't exist.
49
+ */
50
+ if ( 'object' !== typeof values ) {
51
+ values = {};
52
+ for ( i in keys ) {
53
+ values[ keys[ i ] ] = data.settings[ data.rootName + '_' + keys[ i ] + responsive ];
54
+ }
55
+ }
56
+
57
+ /**
58
+ * Setup placeholders if custom config doesn't exist.
59
+ */
60
+ if ( 'object' !== typeof placeholder ) {
61
+ var str = placeholder;
62
+ placeholder = {};
63
+ for ( i in keys ) {
64
+ placeholder[ keys[ i ] ] = str;
65
+ }
66
+ }
67
+
68
  #>
69
  <div class="fl-dimension-field-units">
70
+ <# for ( i = 0; i < keys.length ; i++ ) { #>
71
  <div class="fl-dimension-field-unit">
72
  <input
73
+ type="number"
74
+ name="{{names[ keys[ i ] ]}}"
75
+ value="{{values[ keys[ i ] ]}}"
76
+ placeholder="{{placeholder[ keys[ i ] ]}}"
77
+ data-unit="{{keys[ i ]}}"
78
+ autocomplete="off"
 
 
 
 
 
 
 
 
 
79
  />
80
+ <# if ( slider ) {
81
+
82
+ var sliderJSON;
83
+
84
+ if ( 'object' === typeof slider && 'undefined' !== typeof slider[keys[i]] ) {
85
+ // handle key-specific sliders
86
+ sliderJSON = JSON.stringify( slider[keys[i]] );
87
+ } else {
88
+ sliderJSON = JSON.stringify( slider );
89
+ }
90
+ #>
91
+ <div
92
+ class="fl-field-popup-slider"
93
+ data-input="{{names[ keys[ i ] ]}}"
94
+ data-slider="{{sliderJSON}}"
95
+ >
96
+ <div class="fl-field-popup-slider-arrow"></div>
97
+ <div class="fl-field-popup-slider-input"></div>
98
+ </div>
99
+ <# } #>
100
+ <label>{{{labels[ i ]}}}</label>
101
  </div>
102
+ <# } #>
103
+ <# if ( units ) { #>
104
+ <div class="fl-dimension-field-unit-select">
105
+ <# if ( units.length > 1 ) {
106
+ var unit = {
107
+ name: 'undefined' !== typeof data.unit_name ? data.unit_name : data.rootName + responsive + '_unit',
108
+ value: 'undefined' !== typeof data.unit_value ? data.unit_value : data.settings[ data.rootName + responsive + '_unit' ],
109
+ };
110
+ #>
111
+ <select class="fl-field-unit-select" name="{{unit.name}}">
112
+ <# for ( var i = 0; i < units.length; i++ ) {
113
+ var selected = units[i] === unit.value ? ' selected="selected"' : '';
114
+ var label = '' === units[i] ? '&mdash;' : units[i];
115
+ #>
116
+ <option value="{{units[i]}}"{{{selected}}}>{{{label}}}</option>
117
+ <# } #>
118
+ </select>
119
+ <# } else { #>
120
+ <div class="fl-field-unit-select">{{units[0]}}</div>
121
+ <# } #>
122
  </div>
123
+ <# } #>
124
  </div>
includes/ui-field-font.php CHANGED
@@ -1,9 +1,32 @@
1
- <# data.value = JSON.stringify( data.value ); #>
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  <div class="fl-font-field" data-value='{{{data.value}}}'>
3
- <select name="{{data.name}}[][family]" class="fl-font-field-font">
4
- <?php FLBuilderFonts::display_select_font( 'Default' ) ?>
5
- </select>
6
- <select name="{{data.name}}[][weight]" class="fl-font-field-weight">
7
- <?php FLBuilderFonts::display_select_weight( 'Default', '' ) ?>
8
- </select>
 
 
 
 
 
 
 
 
 
 
9
  </div>
1
+ <#
2
+
3
+ var names = data.names;
4
+
5
+ if ( ! names ) {
6
+ names = {
7
+ family: data.name + '[][family]',
8
+ weight: data.name + '[][weight]',
9
+ };
10
+ }
11
+
12
+ data.value = JSON.stringify( data.value );
13
+
14
+ #>
15
  <div class="fl-font-field" data-value='{{{data.value}}}'>
16
+ <div class="fl-font-field-font-wrapper">
17
+ <# if ( data.field.show_labels ) { #>
18
+ <label for="{{names.family}}"><?php _e( 'Family', 'fl-builder' ); ?></label>
19
+ <# } #>
20
+ <select name="{{names.family}}" class="fl-font-field-font">
21
+ <?php FLBuilderFonts::display_select_font( 'Default' ) ?>
22
+ </select>
23
+ </div>
24
+ <div class="fl-font-field-weight-wrapper">
25
+ <# if ( data.field.show_labels ) { #>
26
+ <label for="{{names.weight}}"><?php _e( 'Weight', 'fl-builder' ); ?></label>
27
+ <# } #>
28
+ <select name="{{names.weight}}" class="fl-font-field-weight">
29
+ <?php FLBuilderFonts::display_select_weight( 'Default', '' ) ?>
30
+ </select>
31
+ </div>
32
  </div>
includes/ui-field-form.php CHANGED
@@ -22,7 +22,9 @@
22
  var field = fields[ data.field.preview_text ];
23
 
24
  if ( 'icon' === field.type ) {
25
- text = '<i class="' + data.value[ data.field.preview_text ] + '"></i>';
 
 
26
  } else if ( 'select' === field.type ) {
27
  text = field.options[ data.value[ data.field.preview_text ] ];
28
  } else if ( '' !== data.value[ data.field.preview_text ] ) {
22
  var field = fields[ data.field.preview_text ];
23
 
24
  if ( 'icon' === field.type ) {
25
+ if ( '' !== data.value[ data.field.preview_text ] ) {
26
+ text = '<i class="' + data.value[ data.field.preview_text ] + '"></i>';
27
+ }
28
  } else if ( 'select' === field.type ) {
29
  text = field.options[ data.value[ data.field.preview_text ] ];
30
  } else if ( '' !== data.value[ data.field.preview_text ] ) {
includes/ui-field-gradient.php ADDED
@@ -0,0 +1,112 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <#
2
+
3
+ var defaults = {
4
+ type: 'linear',
5
+ angle: 90,
6
+ position: 'center center',
7
+ colors: [ '', '' ],
8
+ stops: [ 0, 100 ],
9
+ };
10
+
11
+ var value = '' === data.value ? defaults : jQuery.extend( true, defaults, data.value );
12
+
13
+ var type = wp.template( 'fl-builder-field-select' )( {
14
+ name: data.name + '[][type]',
15
+ value: value.type,
16
+ field: {
17
+ className: 'fl-gradient-picker-type-select',
18
+ options: {
19
+ 'linear': '<?php esc_attr_e( 'Linear', 'fl-builder' ); ?>',
20
+ 'radial': '<?php esc_attr_e( 'Radial', 'fl-builder' ); ?>',
21
+ },
22
+ },
23
+ } );
24
+
25
+ var angle = wp.template( 'fl-builder-field-unit' )( {
26
+ name: data.name + '[][angle]',
27
+ value: value.angle,
28
+ field: {
29
+ className: 'fl-gradient-picker-angle',
30
+ slider: { max: 360 },
31
+ },
32
+ } );
33
+
34
+ var position = wp.template( 'fl-builder-field-select' )( {
35
+ name: data.name + '[][position]',
36
+ value: value.position,
37
+ field: {
38
+ className: 'fl-gradient-picker-position',
39
+ options: {
40
+ 'left top': '<?php esc_attr_e( 'Left Top', 'fl-builder' ); ?>',
41
+ 'left center': '<?php esc_attr_e( 'Left Center', 'fl-builder' ); ?>',
42
+ 'left bottom': '<?php esc_attr_e( 'Left Bottom', 'fl-builder' ); ?>',
43
+ 'right top': '<?php esc_attr_e( 'Right Top', 'fl-builder' ); ?>',
44
+ 'right center': '<?php esc_attr_e( 'Right Center', 'fl-builder' ); ?>',
45
+ 'right bottom': '<?php esc_attr_e( 'Right Bottom', 'fl-builder' ); ?>',
46
+ 'center top': '<?php esc_attr_e( 'Center Top', 'fl-builder' ); ?>',
47
+ 'center center': '<?php esc_attr_e( 'Center Center', 'fl-builder' ); ?>',
48
+ 'center bottom': '<?php esc_attr_e( 'Center Bottom', 'fl-builder' ); ?>',
49
+ },
50
+ },
51
+ } );
52
+
53
+ var color0 = wp.template( 'fl-builder-field-color' )( {
54
+ name: data.name + '[][colors][0]',
55
+ value: value.colors[ 0 ],
56
+ field: {
57
+ className: 'fl-gradient-picker-color',
58
+ show_reset: false,
59
+ show_alpha: true,
60
+ },
61
+ } );
62
+
63
+ var stop0 = wp.template( 'fl-builder-field-unit' )( {
64
+ name: data.name + '[][stops][0]',
65
+ value: value.stops[ 0 ],
66
+ field: {
67
+ slider: true,
68
+ },
69
+ } );
70
+
71
+ var color1 = wp.template( 'fl-builder-field-color' )( {
72
+ name: data.name + '[][colors][1]',
73
+ value: value.colors[ 1 ],
74
+ field: {
75
+ className: 'fl-gradient-picker-color',
76
+ show_reset: false,
77
+ show_alpha: true,
78
+ },
79
+ } );
80
+
81
+ var stop1 = wp.template( 'fl-builder-field-unit' )( {
82
+ name: data.name + '[][stops][1]',
83
+ value: value.stops[ 1 ],
84
+ field: {
85
+ slider: true,
86
+ },
87
+ } );
88
+
89
+ #>
90
+ <div class="fl-gradient-picker">
91
+ <div class="fl-gradient-picker-type">
92
+ {{{type}}}
93
+ <div class="fl-gradient-picker-angle-wrap">
94
+ {{{angle}}}
95
+ </div>
96
+ {{{position}}}
97
+ </div>
98
+ <div class="fl-gradient-picker-colors">
99
+ <div class="fl-gradient-picker-color-row">
100
+ {{{color0}}}
101
+ <div class="fl-gradient-picker-stop">
102
+ {{{stop0}}}
103
+ </div>
104
+ </div>
105
+ <div class="fl-gradient-picker-color-row">
106
+ {{{color1}}}
107
+ <div class="fl-gradient-picker-stop">
108
+ {{{stop1}}}
109
+ </div>
110
+ </div>
111
+ </div>
112
+ </div>
includes/ui-field-icon.php CHANGED
@@ -1,4 +1,23 @@
1
- <div class="fl-icon-field fl-builder-custom-field<# if ( '' === data.value ) { #> fl-icon-empty<# } #><# if ( data.field.className ) { #> {{data.field.className}}<# } #>">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  <a class="fl-icon-select" href="javascript:void(0);" onclick="return false;"><?php _e( 'Select Icon', 'fl-builder' ); ?></a>
3
  <div class="fl-icon-preview">
4
  <i class="{{{data.value}}}" data-icon="{{{data.value}}}"></i>
@@ -7,5 +26,5 @@
7
  <a class="fl-icon-remove" href="javascript:void(0);" onclick="return false;"><?php _e( 'Remove', 'fl-builder' ); ?></a>
8
  <# } #>
9
  </div>
10
- <input name="{{data.name}}" type="hidden" value="{{{data.value}}}" />
11
  </div>
1
+ <#
2
+
3
+ var field = data.field;
4
+ var className = 'fl-icon-field fl-builder-custom-field';
5
+
6
+ if ( '' === data.value ) {
7
+ className += ' fl-icon-empty';
8
+ }
9
+ if ( field.className ) {
10
+ className += ' ' + field.className;
11
+ }
12
+
13
+ var show = '';
14
+
15
+ if ( field.show ) {
16
+ show = "data-show='" + JSON.stringify( field.show ) + "'";
17
+ }
18
+
19
+ #>
20
+ <div class="{{className}}">
21
  <a class="fl-icon-select" href="javascript:void(0);" onclick="return false;"><?php _e( 'Select Icon', 'fl-builder' ); ?></a>
22
  <div class="fl-icon-preview">
23
  <i class="{{{data.value}}}" data-icon="{{{data.value}}}"></i>
26
  <a class="fl-icon-remove" href="javascript:void(0);" onclick="return false;"><?php _e( 'Remove', 'fl-builder' ); ?></a>
27
  <# } #>
28
  </div>
29
+ <input name="{{data.name}}" type="hidden" value="{{{data.value}}}" {{{show}}} />
30
  </div>
includes/ui-field-link.php CHANGED
@@ -3,6 +3,30 @@
3
  <input type="text" name="{{data.name}}" value="{{{data.value}}}" class="text fl-link-field-input" placeholder="<# if ( data.field.placeholder ) { #>{{data.field.placeholder}}<# } else { #><?php _ex( 'http://www.example.com', 'Link placeholder', 'fl-builder' ); ?><# } #>" />
4
  <button class="fl-link-field-select fl-builder-button fl-builder-button-small" href="javascript:void(0);" onclick="return false;"><?php _e( 'Select', 'fl-builder' ); ?></button>
5
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  <div class="fl-link-field-search">
7
  <span class="fl-link-field-search-title"><?php _e( 'Enter a post title to search.', 'fl-builder' ); ?></span>
8
  <input type="text" name="{{data.name}}-search" class="text text-full fl-link-field-search-input" placeholder="<?php esc_attr_e( 'Start typing...', 'fl-builder' ); ?>" />
3
  <input type="text" name="{{data.name}}" value="{{{data.value}}}" class="text fl-link-field-input" placeholder="<# if ( data.field.placeholder ) { #>{{data.field.placeholder}}<# } else { #><?php _ex( 'http://www.example.com', 'Link placeholder', 'fl-builder' ); ?><# } #>" />
4
  <button class="fl-link-field-select fl-builder-button fl-builder-button-small" href="javascript:void(0);" onclick="return false;"><?php _e( 'Select', 'fl-builder' ); ?></button>
5
  </div>
6
+ <# if ( data.field.show_target || data.field.show_nofollow ) { #>
7
+ <div class="fl-link-field-options-wrap">
8
+ <# if ( data.field.show_target ) {
9
+ var value = data.settings[ data.name + '_target' ];
10
+ var checked = '_blank' === value ? 'checked' : '';
11
+ #>
12
+ <label>
13
+ <input type="checkbox" class="fl-link-field-target-cb" {{checked}} />
14
+ <input type="hidden" name="{{data.name}}_target" value="{{value}}" />
15
+ <span><?php _e( 'New Window', 'fl-builder' ); ?></span>
16
+ </label>
17
+ <# } #>
18
+ <# if ( data.field.show_nofollow ) {
19
+ var value = data.settings[ data.name + '_nofollow' ];
20
+ var checked = 'yes' === value ? 'checked' : '';
21
+ #>
22
+ <label>
23
+ <input type="checkbox" class="fl-link-field-nofollow-cb" {{checked}} />
24
+ <input type="hidden" name="{{data.name}}_nofollow" value="{{value}}" />
25
+ <span><?php _e( 'No Follow', 'fl-builder' ); ?></span>
26
+ </label>
27
+ <# } #>
28
+ </div>
29
+ <# } #>
30
  <div class="fl-link-field-search">
31
  <span class="fl-link-field-search-title"><?php _e( 'Enter a post title to search.', 'fl-builder' ); ?></span>
32
  <input type="text" name="{{data.name}}-search" class="text text-full fl-link-field-search-input" placeholder="<?php esc_attr_e( 'Start typing...', 'fl-builder' ); ?>" />
includes/ui-field-photo.php CHANGED
@@ -1,11 +1,16 @@
1
  <#
2
 
3
  var url = '';
 
4
 
5
  if ( data.isMultiple ) {
6
- url = data.settings[ data.rootName + '_src' ][ data.index ];
 
 
 
7
  } else {
8
- url = data.settings[ data.rootName + '_src' ];
 
9
  }
10
 
11
  var photo = null;
@@ -31,7 +36,8 @@ if ( FLBuilderSettingsConfig.attachments[ data.value ] ) {
31
  }
32
  }
33
 
34
- var className = data.field.className ? ' ' + data.field.className : '';
 
35
 
36
  if ( ! data.value || ! photo ) {
37
  className += ' fl-photo-empty';
@@ -39,15 +45,25 @@ if ( ! data.value || ! photo ) {
39
  className += photo.isAttachment ? ' fl-photo-has-attachment' : ' fl-photo-no-attachment';
40
  }
41
 
 
 
 
 
 
 
 
 
 
 
42
  #>
43
- <div class="fl-photo-field fl-builder-custom-field{{className}}">
44
  <a class="fl-photo-select" href="javascript:void(0);" onclick="return false;"><?php _e( 'Select Photo', 'fl-builder' ); ?></a>
45
  <div class="fl-photo-preview">
46
  <div class="fl-photo-preview-img">
47
  <img src="<# if ( photo ) { var src = FLBuilder._getPhotoSrc( photo ); #>{{{src}}}<# } #>" />
48
  </div>
49
  <div class="fl-photo-preview-controls">
50
- <select name="{{data.rootName}}_src">
51
  <# if ( photo && url ) {
52
  var sizes = FLBuilder._getPhotoSizeOptions( photo, url );
53
  #>
1
  <#
2
 
3
  var url = '';
4
+ var selectName = '';
5
 
6
  if ( data.isMultiple ) {
7
+ if ( data.settings[ data.rootName + '_src' ] ) {
8
+ url = data.settings[ data.rootName + '_src' ][ data.index ];
9
+ }
10
+ selectName = data.rootName + '_src[]';
11
  } else {
12
+ url = data.settings[ data.name + '_src' ];
13
+ selectName = data.name + '_src';
14
  }
15
 
16
  var photo = null;
36
  }
37
  }
38
 
39
+ var field = data.field;
40
+ var className = 'fl-photo-field fl-builder-custom-field';
41
 
42
  if ( ! data.value || ! photo ) {
43
  className += ' fl-photo-empty';
45
  className += photo.isAttachment ? ' fl-photo-has-attachment' : ' fl-photo-no-attachment';
46
  }
47
 
48
+ if ( field.className ) {
49
+ className += ' ' + field.className;
50
+ }
51
+
52
+ var show = '';
53
+
54
+ if ( field.show ) {
55
+ show = "data-show='" + JSON.stringify( field.show ) + "'";
56
+ }
57
+
58
  #>
59
+ <div class="{{className}}">
60
  <a class="fl-photo-select" href="javascript:void(0);" onclick="return false;"><?php _e( 'Select Photo', 'fl-builder' ); ?></a>
61
  <div class="fl-photo-preview">
62
  <div class="fl-photo-preview-img">
63
  <img src="<# if ( photo ) { var src = FLBuilder._getPhotoSrc( photo ); #>{{{src}}}<# } #>" />
64
  </div>
65
  <div class="fl-photo-preview-controls">
66
+ <select name="{{selectName}}" {{{show}}}>
67
  <# if ( photo && url ) {
68
  var sizes = FLBuilder._getPhotoSizeOptions( photo, url );
69
  #>
includes/ui-field-preset.php ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ <#
2
+ data.value = '';
3
+ var select = wp.template( 'fl-builder-field-select' )( data );
4
+ #>
5
+ <div class="fl-preset-select-controls" data-presets="{{data.field.presets}}" data-prefix="{{data.field.prefix}}">{{{select}}}</div>
includes/ui-field-raw.php ADDED
@@ -0,0 +1 @@
 
1
+ <div class={{data.name}}>{{{data.field.content}}}</div>
includes/ui-field-select.php CHANGED
@@ -75,8 +75,24 @@ if ( field.trigger ) {
75
  atts += " data-trigger='" + JSON.stringify( field.trigger ) + "'";
76
  }
77
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78
  #>
79
  <select name="{{name}}"{{{atts}}}>
 
 
 
80
  <#
81
 
82
  // Loop through the options
75
  atts += " data-trigger='" + JSON.stringify( field.trigger ) + "'";
76
  }
77
 
78
+ // Referenced Option Sets - See FLBuilderConfig.optionSets
79
+ if ( ( Array.isArray( field.options ) && field.options.length === 1 ) || 'string' === typeof field.options ) {
80
+
81
+ var optionSetName = Array.isArray( field.options ) ? field.options[0] : field.options ;
82
+
83
+ if ( 'undefined' !== typeof optionSetName ) {
84
+ var optionSet = FLBuilderConfig.optionSets[optionSetName];
85
+ if ( 'undefined' !== typeof optionSet ) {
86
+ field.options = optionSet;
87
+ }
88
+ }
89
+ }
90
+
91
  #>
92
  <select name="{{name}}"{{{atts}}}>
93
+ <# if ( data.device && 'default' !== data.device ) { #>
94
+ <option value=""></option>
95
+ <# } #>
96
  <#
97
 
98
  // Loop through the options
includes/ui-field-shadow.php ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <#
2
+
3
+ var defaults = {
4
+ color: '',
5
+ horizontal: '',
6
+ vertical: '',
7
+ blur: '',
8
+ spread: '',
9
+ };
10
+
11
+ var value = '' === data.value ? defaults : data.value;
12
+
13
+ var picker = wp.template( 'fl-builder-field-color' )( {
14
+ name: data.name + '[][color]',
15
+ value: value.color,
16
+ field: {
17
+ className: 'fl-shadow-field-color',
18
+ show_reset: true,
19
+ show_alpha: true,
20
+ },
21
+ } );
22
+
23
+ var dimensions = {
24
+ horizontal: {
25
+ label: 'X',
26
+ min: -100,
27
+ max: 100,
28
+ },
29
+ vertical: {
30
+ label: 'Y',
31
+ min: -100,
32
+ max: 100,
33
+ },
34
+ blur: {
35
+ label: '<?php _e( 'Blur', 'fl-builder' ); ?>',
36
+ min: 0,
37
+ max: 100,
38
+ },
39
+ spread: {
40
+ label: '<?php _e( 'Spread', 'fl-builder' ); ?>',
41
+ min: -100,
42
+ max: 100,
43
+ },
44
+ };
45
+
46
+ if ( false === data.field.show_spread ) {
47
+ delete dimensions.spread;
48
+ }
49
+
50
+ #>
51
+ <div class="fl-shadow-field">
52
+ {{{picker}}}
53
+ <div class="fl-dimension-field-units">
54
+ <# for ( var key in dimensions ) {
55
+ var slider = JSON.stringify( {
56
+ min: dimensions[ key ].min,
57
+ max: dimensions[ key ].max,
58
+ } );
59
+ #>
60
+ <div class="fl-dimension-field-unit fl-shadow-field-{{key}}">
61
+ <input
62
+ type="number"
63
+ name="{{data.name}}[][{{key}}]"
64
+ value="{{value[ key ]}}"
65
+ autocomplete="off"
66
+ />
67
+ <div
68
+ class="fl-field-popup-slider"
69
+ data-input="{{data.name}}[][{{key}}]"
70
+ data-slider="{{slider}}"
71
+ >
72
+ <div class="fl-field-popup-slider-arrow"></div>
73
+ <div class="fl-field-popup-slider-input"></div>
74
+ </div>
75
+ <label>{{dimensions[ key ].label}}</label>
76
+ </div>
77
+ <# } #>
78
+ <div class="fl-dimension-field-unit-select">
79
+ <div class="fl-field-unit-select">px</div>
80
+ </div>
81
+ </div>
82
+ </div>
includes/ui-field-shape-transform.php ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <#
2
+ var position = data.field.preview.position;
3
+ var defaults = {
4
+ translateX: '0',
5
+ translateY: '0',
6
+ skew: '',
7
+ rotate: '',
8
+ scaleX: '1',
9
+ scaleXSign: '',
10
+ scaleYSign: ''
11
+ };
12
+
13
+ var value = '' === data.value ? defaults : data.value;
14
+
15
+ var dimensions = {
16
+ skewX: {
17
+ label: '<?php _e( 'Skew X', 'fl-builder' ); ?>',
18
+ min: -60,
19
+ max: 60,
20
+ },
21
+ skewY: {
22
+ label: '<?php _e( 'Skew Y', 'fl-builder' ); ?>',
23
+ min: -60,
24
+ max: 60,
25
+ },
26
+ scaleX: {
27
+ label: '<?php _e( 'Scale X', 'fl-builder' ); ?>',
28
+ min: 1,
29
+ max: 10,
30
+ step: .1,
31
+ },
32
+ rotate: {
33
+ label: '<?php _e( 'Rotate', 'fl-builder' ); ?>',
34
+ min: 0,
35
+ max: 360,
36
+ },
37
+ };
38
+
39
+ var xOrientation = wp.template( 'fl-builder-field-button-group' )( {
40
+ name: data.name + '[][scaleXSign]',
41
+ value: value.scaleXSign,
42
+ field: {
43
+ label: '<?php _e( 'Horizontal Orientation', 'fl-builder' ) ?>',
44
+ options: {
45
+ 'invert': '<i class="dashicons dashicons-image-flip-horizontal"></i>',
46
+ },
47
+ },
48
+ } );
49
+
50
+ var yOrientation = wp.template( 'fl-builder-field-button-group' )( {
51
+ name: data.name + '[][scaleYSign]',
52
+ value: value.scaleYSign,
53
+ field: {
54
+ label: '<?php _e( 'Vertical Orientation', 'fl-builder' ) ?>',
55
+ options: {
56
+ 'invert': '<i class="dashicons dashicons-image-flip-vertical"></i>',
57
+ },
58
+ },
59
+ } );
60
+
61
+ #>
62
+ <div class="fl-shape-transform-field">
63
+ <div class="fl-compound-field-section-visible">
64
+ <div class="fl-compound-field-row">
65
+ <span class="fl-compound-field-cell fl-shape-orientation-cell">
66
+ <span class="fl-shape-orientation-controls">
67
+ {{{xOrientation}}}
68
+ {{{yOrientation}}}
69
+ </span>
70
+ <label><?php _e( 'Orientation', 'fl-builder' ) ?></label>
71
+ </span>
72
+ <span class="fl-compound-field-cell">
73
+ <div class="fl-dimension-field-units">
74
+ <# for ( var key in dimensions ) {
75
+ var slider = JSON.stringify( {
76
+ min: dimensions[ key ].min,
77
+ max: dimensions[ key ].max,
78
+ step: dimensions[ key ].step ? dimensions[ key ].step : 1,
79
+ } );
80
+ #>
81
+ <div class="fl-dimension-field-unit fl-shape-transform-field-{{key}}">
82
+ <input
83
+ type="number"
84
+ name="{{data.name}}[][{{key}}]"
85
+ value="{{value[ key ]}}"
86
+ autocomplete="off"
87
+ />
88
+ <div
89
+ class="fl-field-popup-slider"
90
+ data-input="{{data.name}}[][{{key}}]"
91
+ data-slider="{{slider}}"
92
+ >
93
+ <div class="fl-field-popup-slider-arrow"></div>
94
+ <div class="fl-field-popup-slider-input"></div>
95
+ </div>
96
+ <label>{{dimensions[ key ].label}}</label>
97
+ </div>
98
+ <# } #>
99
+
100
+ <input type="hidden" name="{{data.name}}[][scaleY]" value="1" />
101
+ </div>
102
+ </span>
103
+ </div>
104
+ </div>
105
+ </div>
includes/ui-field-typography.php ADDED
@@ -0,0 +1,237 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <#
2
+
3
+ var defaults = {
4
+ font_family: 'Default',
5
+ font_weight: 'default',
6
+ font_size: {
7
+ length: '',
8
+ unit: 'px',
9
+ },
10
+ line_height: {
11
+ length: '',
12
+ unit: '',
13
+ },
14
+ text_align: '',
15
+ letter_spacing: {
16
+ length: '',
17
+ unit: 'px',
18
+ },
19
+ text_transform: '',
20
+ text_decoration: '',
21
+ font_style: '',
22
+ font_variant: '',
23
+ text_shadow: {
24
+ color: '',
25
+ horizontal: '',
26
+ vertical: '',
27
+ blur: '',
28
+ },
29
+ };
30
+
31
+ var value = '' === data.value ? defaults : jQuery.extend( true, defaults, data.value );
32
+ var device = data.device ? data.device : 'default';
33
+
34
+ var fontFamily = wp.template( 'fl-builder-field-font' )( {
35
+ names: {
36
+ family: data.name + '[][font_family]',
37
+ weight: data.name + '[][font_weight]',
38
+ },
39
+ value: {
40
+ family: value.font_family,
41
+ weight: value.font_weight,
42
+ },
43
+ field: {
44
+ show_labels: true,
45
+ },
46
+ } );
47
+
48
+ var fontSize = wp.template( 'fl-builder-field-unit' )( {
49
+ name: data.name + '[][font_size][length]',
50
+ value: value.font_size.length,
51
+ unit_name: data.name + '[][font_size][unit]',
52
+ unit_value: value.font_size.unit,
53
+ field: {
54
+ units: [ 'px', 'em', 'rem' ],
55
+ slider: true,
56
+ },
57
+ } );
58
+
59
+ var lineHeight = wp.template( 'fl-builder-field-unit' )( {
60
+ name: data.name + '[][line_height][length]',
61
+ value: value.line_height.length,
62
+ unit_name: data.name + '[][line_height][unit]',
63
+ unit_value: value.line_height.unit,
64
+ field: {
65
+ units: [ '', 'px', 'em' ],
66
+ slider: true,
67
+ },
68
+ } );
69
+
70
+ var textAlign = wp.template( 'fl-builder-field-align' )( {
71
+ name: data.name + '[][text_align]',
72
+ value: value.text_align,
73
+ field: {},
74
+ } );
75
+
76
+ var letterSpacing = wp.template( 'fl-builder-field-unit' )( {
77
+ name: data.name + '[][letter_spacing][length]',
78
+ value: value.letter_spacing.length,
79
+ unit_name: data.name + '[][letter_spacing][unit]',
80
+ unit_value: value.letter_spacing.unit,
81
+ field: {
82
+ units: [ 'px' ],
83
+ slider: {
84
+ min: -10,
85
+ max: 10,
86
+ step: .1,
87
+ },
88
+ },
89
+ } );
90
+
91
+ var textTransform = wp.template( 'fl-builder-field-button-group' )( {
92
+ name: data.name + '[][text_transform]',
93
+ value: value.text_transform,
94
+ field: {
95
+ options: {
96
+ none: 'Normal',
97
+ capitalize: 'Tt',
98
+ uppercase: 'TT',
99
+ lowercase: 'tt',
100
+ },
101
+ },
102
+ } );
103
+
104
+ var textDecoration = wp.template( 'fl-builder-field-select' )( {
105
+ name: data.name + '[][text_decoration]',
106
+ value: value.text_decoration,
107
+ field: {
108
+ options: {
109
+ '': '<?php esc_attr_e( 'Default', 'fl-builder' ); ?>',
110
+ 'none': '<?php esc_attr_e( 'None', 'fl-builder' ); ?>',
111
+ 'underline': '<?php esc_attr_e( 'Underline', 'fl-builder' ); ?>',
112
+ 'overline': '<?php esc_attr_e( 'Overline', 'fl-builder' ); ?>',
113
+ 'line-through': '<?php esc_attr_e( 'Line Through', 'fl-builder' ); ?>',
114
+ },
115
+ },
116
+ } );
117
+
118
+ var fontStyle = wp.template( 'fl-builder-field-select' )( {
119
+ name: data.name + '[][font_style]',
120
+ value: value.font_style,
121
+ field: {
122
+ options: {
123
+ '': '<?php esc_attr_e( 'Default', 'fl-builder' ); ?>',
124
+ 'normal': '<?php esc_attr_e( 'Normal', 'fl-builder' ); ?>',
125
+ 'italic': '<?php esc_attr_e( 'Italic', 'fl-builder' ); ?>',
126
+ 'oblique': '<?php esc_attr_e( 'Oblique', 'fl-builder' ); ?>',
127
+ },
128
+ },
129
+ } );
130
+
131
+ var fontVariant = wp.template( 'fl-builder-field-select' )( {
132
+ name: data.name + '[][font_variant]',
133
+ value: value.font_variant,
134
+ field: {
135
+ options: {
136
+ '': '<?php esc_attr_e( 'Default', 'fl-builder' ); ?>',
137
+ 'normal': '<?php esc_attr_e( 'Normal', 'fl-builder' ); ?>',
138
+ 'small-caps': '<?php esc_attr_e( 'Small Caps', 'fl-builder' ); ?>',
139
+ },
140
+ },
141
+ } );
142
+
143
+ var textShadow = wp.template( 'fl-builder-field-shadow' )( {
144
+ name: data.name + '[][text_shadow]',
145
+ value: value.text_shadow,
146
+ field: {
147
+ show_spread: false,
148
+ },
149
+ } );
150
+
151
+ #>
152
+ <div class="fl-compound-field fl-typography-field">
153
+ <div class="fl-compound-field-section fl-typography-field-section-general">
154
+ <div class="fl-compound-field-section-toggle">
155
+ <i class="dashicons dashicons-arrow-right-alt2"></i>
156
+ <?php _e( 'Font', 'fl-builder' ); ?>
157
+ </div>
158
+ <# if ( 'default' === device ) { #>
159
+ <div class="fl-compound-field-row">
160
+ <div class="fl-compound-field-setting fl-typography-field-family" data-property="font-family">
161
+ {{{fontFamily}}}
162
+ </div>
163
+ </div>
164
+ <# } #>
165
+ <div class="fl-compound-field-row">
166
+ <div class="fl-compound-field-setting fl-typography-field-size" data-property="font-size">
167
+ <label class="fl-compound-field-label">
168
+ <?php _e( 'Size', 'fl-builder' ); ?>
169
+ </label>
170
+ {{{fontSize}}}
171
+ </div>
172
+ <div class="fl-compound-field-setting fl-typography-field-line-height" data-property="line-height">
173
+ <label class="fl-compound-field-label">
174
+ <?php _e( 'Line Height', 'fl-builder' ); ?>
175
+ </label>
176
+ {{{lineHeight}}}
177
+ </div>
178
+ <div class="fl-compound-field-setting fl-typography-field-align" data-property="text-align">
179
+ <label class="fl-compound-field-label">
180
+ <?php _e( 'Align', 'fl-builder' ); ?>
181
+ </label>
182
+ {{{textAlign}}}
183
+ </div>
184
+ </div>
185
+ </div>
186
+ <div class="fl-compound-field-section fl-compound-field-section-style">
187
+ <div class="fl-compound-field-section-toggle">
188
+ <i class="dashicons dashicons-arrow-right-alt2"></i>
189
+ <?php _e( 'Style &amp Spacing', 'fl-builder' ); ?>
190
+ </div>
191
+ <div class="fl-compound-field-row">
192
+ <div class="fl-compound-field-setting fl-typography-field-spacing" data-property="letter-spacing">
193
+ <label class="fl-compound-field-label">
194
+ <?php _e( 'Spacing', 'fl-builder' ); ?>
195
+ </label>
196
+ {{{letterSpacing}}}
197
+ </div>
198
+ <div class="fl-compound-field-setting fl-typography-field-transform" data-property="text-transform">
199
+ <label class="fl-compound-field-label">
200
+ <?php _e( 'Transform', 'fl-builder' ); ?>
201
+ </label>
202
+ {{{textTransform}}}
203
+ </div>
204
+ </div>
205
+ <div class="fl-compound-field-row">
206
+ <div class="fl-compound-field-setting fl-typography-field-decoration" data-property="text-decoration">
207
+ <label class="fl-compound-field-label">
208
+ <?php _e( 'Decoration', 'fl-builder' ); ?>
209
+ </label>
210
+ {{{textDecoration}}}
211
+ </div>
212
+ <div class="fl-compound-field-setting fl-typography-field-style" data-property="font-style">
213
+ <label class="fl-compound-field-label">
214
+ <?php _e( 'Style', 'fl-builder' ); ?>
215
+ </label>
216
+ {{{fontStyle}}}
217
+ </div>
218
+ <div class="fl-compound-field-setting fl-typography-field-variant" data-property="font-variant">
219
+ <label class="fl-compound-field-label">
220
+ <?php _e( 'Variant', 'fl-builder' ); ?>
221
+ </label>
222
+ {{{fontVariant}}}
223
+ </div>
224
+ </div>
225
+ </div>
226
+ <div class="fl-compound-field-section fl-compound-field-section-shadow">
227
+ <div class="fl-compound-field-section-toggle">
228
+ <i class="dashicons dashicons-arrow-right-alt2"></i>
229
+ <?php _e( 'Text Shadow', 'fl-builder' ); ?>
230
+ </div>
231
+ <div class="fl-compound-field-row">
232
+ <div class="fl-compound-field-setting fl-typography-field-shadow" data-property="text-shadow">
233
+ {{{textShadow}}}
234
+ </div>
235
+ </div>
236
+ </div>
237
+ </div>
includes/ui-field-unit.php CHANGED
@@ -1,6 +1,52 @@
1
- <input
2
- type="number"
3
- name="{{data.name}}"
4
- value="{{{data.value}}}"
5
- placeholder="<# if ( data.field.placeholder ) { #>{{data.field.placeholder}}<# } #>"
6
- />
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <#
2
+
3
+ var className = data.field.className ? data.field.className : '';
4
+ var slider = data.field.slider;
5
+ var units = data.field.units;
6
+
7
+ #>
8
+ <div class="fl-unit-field-inputs">
9
+ <div class="fl-unit-field-input">
10
+ <input
11
+ class="{{className}}"
12
+ type="number"
13
+ name="{{data.name}}"
14
+ value="{{{data.value}}}"
15
+ placeholder="<# if ( data.field.placeholder ) { #>{{data.field.placeholder}}<# } #>"
16
+ autocomplete="off"
17
+ />
18
+ <# if ( slider ) {
19
+ slider = JSON.stringify( slider );
20
+ #>
21
+ <div
22
+ class="fl-field-popup-slider"
23
+ data-input="{{data.name}}"
24
+ data-slider="{{slider}}"
25
+ >
26
+ <div class="fl-field-popup-slider-arrow"></div>
27
+ <div class="fl-field-popup-slider-input"></div>
28
+ </div>
29
+ <# } #>
30
+ </div>
31
+ <# if ( units ) { #>
32
+ <div class="fl-unit-field-input fl-unit-field-unit-select">
33
+ <# if ( units.length > 1 ) {
34
+ var unit = {
35
+ name: 'undefined' !== typeof data.unit_name ? data.unit_name : data.name + '_unit',
36
+ value: 'undefined' !== typeof data.unit_value ? data.unit_value : data.settings[ data.name + '_unit' ],
37
+ };
38
+ #>
39
+ <select class="fl-field-unit-select" name="{{unit.name}}">
40
+ <# for ( var i = 0; i < units.length; i++ ) {
41
+ var selected = units[i] === unit.value ? ' selected="selected"' : '';
42
+ var label = '' === units[i] ? '&mdash;' : units[i];
43
+ #>
44
+ <option value="{{units[i]}}"{{{selected}}}>{{{label}}}</option>
45
+ <# } #>
46
+ </select>
47
+ <# } else { #>
48
+ <div class="fl-field-unit-select">{{units[0]}}</div>
49
+ <# } #>
50
+ </div>
51
+ <# } #>
52
+ </div>
includes/ui-field.php CHANGED
@@ -31,25 +31,26 @@
31
  <td class="fl-field-control">
32
  <# } #>
33
  <div class="fl-field-control-wrapper">
34
-
35
  <# if ( data.responsive ) { #>
36
  <i class="fl-field-responsive-toggle dashicons dashicons-desktop" data-mode="default"></i>
37
  <# } #>
 
 
 
38
 
39
- <# var devices = [ 'default', 'medium', 'responsive' ]; #>
40
- <# for ( var i = 0; i < devices.length; i++ ) { #>
41
 
42
- <# if ( 'default' !== devices[ i ] && ! data.responsive ) {
43
  continue;
44
- } #>
45
 
46
- <# if ( data.responsive ) {
47
  data.name = 'default' === devices[ i ] ? data.rootName : data.rootName + '_' + devices[ i ];
48
  data.value = data.settings[ data.name ] ? data.settings[ data.name ] : '';
49
 
50
  if ( 'object' === typeof data.responsive ) {
51
  for ( var key in data.responsive ) {
52
- if ( 'object' === typeof data.responsive[ key ] && data.responsive[ key ][ devices[ i ] ] ) {
53
  data.field[ key ] = data.responsive[ key ][ devices[ i ] ];
54
  }
55
  }
@@ -69,11 +70,9 @@
69
  #>
70
  <div class="fl-legacy-field" data-field="{{name}}" />
71
  <# } #>
72
-
73
  <# if ( data.responsive ) { #>
74
  </div>
75
  <# } #>
76
-
77
  <# } #>
78
  <# if ( data.field.description ) { #>
79
  <span class="fl-field-description">{{{data.field.description}}}</span>
31
  <td class="fl-field-control">
32
  <# } #>
33
  <div class="fl-field-control-wrapper">
 
34
  <# if ( data.responsive ) { #>
35
  <i class="fl-field-responsive-toggle dashicons dashicons-desktop" data-mode="default"></i>
36
  <# } #>
37
+ <# var devices = [ 'default', 'medium', 'responsive' ];
38
+
39
+ for ( var i = 0; i < devices.length; i++ ) {
40
 
41
+ data.device = devices[ i ];
 
42
 
43
+ if ( 'default' !== devices[ i ] && ! data.responsive ) {
44
  continue;
45
+ }
46
 
47
+ if ( data.responsive ) {
48
  data.name = 'default' === devices[ i ] ? data.rootName : data.rootName + '_' + devices[ i ];
49
  data.value = data.settings[ data.name ] ? data.settings[ data.name ] : '';
50
 
51
  if ( 'object' === typeof data.responsive ) {
52
  for ( var key in data.responsive ) {
53
+ if ( 'object' === typeof data.responsive[ key ] && undefined !== data.responsive[ key ][ devices[ i ] ] ) {
54
  data.field[ key ] = data.responsive[ key ][ devices[ i ] ];
55
  }
56
  }
70
  #>
71
  <div class="fl-legacy-field" data-field="{{name}}" />
72
  <# } #>
 
73
  <# if ( data.responsive ) { #>
74
  </div>
75
  <# } #>
 
76
  <# } #>
77
  <# if ( data.field.description ) { #>
78
  <span class="fl-field-description">{{{data.field.description}}}</span>
includes/ui-js-config.php CHANGED
@@ -55,9 +55,10 @@ echo 'FLBuilderConfig = ' . json_encode( apply_filters('fl_builder_
55
  'inlineEnabled' => FLBuilderModel::is_inline_enabled(),
56
  'CheckCodeErrors' => FLBuilderModel::is_codechecking_enabled(),
57
  'AceEditorSettings' => FLBuilderModel::ace_editor_settings(),
 
 
58
  'FontWeights' => FLBuilderFonts::get_font_weight_strings(),
59
  'statsEnabled' => get_site_option( 'fl_builder_usage_enabled', false ),
60
-
61
  ) ) ) . ';';
62
 
63
  echo 'FLBuilderStrings = ' . json_encode( apply_filters('fl_builder_ui_js_strings', array(
@@ -184,6 +185,7 @@ echo 'FLBuilderStrings = ' . json_encode( apply_filters('fl_builder_
184
  'unloadWarning' => esc_attr__( 'The settings you are currently editing will not be saved if you navigate away from this page.', 'fl-builder' ),
185
  'viewKnowledgeBase' => esc_attr__( 'View the Knowledge Base', 'fl-builder' ),
186
  'validateRequiredMessage' => esc_attr__( 'This field is required.', 'fl-builder' ),
 
187
  'visitForums' => esc_attr__( 'Contact Support', 'fl-builder' ),
188
  'watchHelpVideo' => esc_attr__( 'Watch the Video', 'fl-builder' ),
189
  'welcomeMessage' => esc_attr__( 'Welcome! It looks like this might be your first time using the builder. Would you like to take a tour?', 'fl-builder' ),
55
  'inlineEnabled' => FLBuilderModel::is_inline_enabled(),
56
  'CheckCodeErrors' => FLBuilderModel::is_codechecking_enabled(),
57
  'AceEditorSettings' => FLBuilderModel::ace_editor_settings(),
58
+ 'optionSets' => apply_filters( 'fl_builder_shared_option_sets', array() ),
59
+ 'presets' => FLBuilderSettingsPresets::get_presets(),
60
  'FontWeights' => FLBuilderFonts::get_font_weight_strings(),
61
  'statsEnabled' => get_site_option( 'fl_builder_usage_enabled', false ),
 
62
  ) ) ) . ';';
63
 
64
  echo 'FLBuilderStrings = ' . json_encode( apply_filters('fl_builder_ui_js_strings', array(
185
  'unloadWarning' => esc_attr__( 'The settings you are currently editing will not be saved if you navigate away from this page.', 'fl-builder' ),
186
  'viewKnowledgeBase' => esc_attr__( 'View the Knowledge Base', 'fl-builder' ),
187
  'validateRequiredMessage' => esc_attr__( 'This field is required.', 'fl-builder' ),
188
+ 'schemaAllRequiredMessage' => esc_attr__( 'All Structured Data fields are required.', 'fl-builder' ),
189
  'visitForums' => esc_attr__( 'Contact Support', 'fl-builder' ),
190
  'watchHelpVideo' => esc_attr__( 'Watch the Video', 'fl-builder' ),
191
  'welcomeMessage' => esc_attr__( 'Welcome! It looks like this might be your first time using the builder. Would you like to take a tour?', 'fl-builder' ),
includes/ui-js-templates.php CHANGED
@@ -85,7 +85,7 @@
85
  <# } #>
86
  <?php if ( ! $simple_ui ) : ?>
87
  <# if ( ! data.groupLoading ) { #>
88
- <# if ( ( ! data.first && data.contentWidth > 40 ) || ( data.hasParentCol && data.first && ! data.parentFirst ) ) { #>
89
  <div class="fl-block-col-resize fl-block-col-resize-w<# if ( data.hasParentCol && data.first && ! data.parentFirst ) { #> fl-block-col-resize-parent<# } #>">
90
  <div class="fl-block-col-resize-handle-wrap">
91
  <div class="fl-block-col-resize-feedback fl-block-col-resize-feedback-left"></div>
@@ -94,7 +94,7 @@
94
  </div>
95
  </div>
96
  <# } #>
97
- <# if ( ( ! data.last && data.contentWidth > 40 ) || ( data.hasParentCol && data.last && ! data.parentLast ) ) { #>
98
  <div class="fl-block-col-resize fl-block-col-resize-e<# if ( data.hasParentCol && data.last && ! data.parentLast ) { #> fl-block-col-resize-parent<# } #>">
99
  <div class="fl-block-col-resize-handle-wrap">
100
  <div class="fl-block-col-resize-feedback fl-block-col-resize-feedback-left"></div>
@@ -146,8 +146,8 @@
146
  <i class="fl-block-col-settings fas fa-columns fl-tip" title="<?php _e( 'Edit Column', 'fl-builder' ); ?>"></i>
147
  <# if ( ! data.isRootCol ) { #>
148
  <ul class="fl-builder-submenu fl-block-col-submenu">
149
- <li><a class="fl-block-col-move" href="javascript:void(0);"><?php _e( 'Move Column', 'fl-builder' ); ?><i class="fas fa-arrows-alt"></i></a></li>
150
  <li><a class="fl-block-col-edit" href="javascript:void(0);"><?php _e( 'Column Settings', 'fl-builder' ); ?></a></li>
 
151
  <# if ( ( ! data.hasParentCol && data.numCols < 12 ) || ( data.hasParentCol && data.numCols < 4 ) ) { #>
152
  <li><a class="fl-block-col-copy" href="javascript:void(0);"><?php _e( 'Duplicate Column', 'fl-builder' ); ?></a></li>
153
  <# } #>
@@ -181,7 +181,7 @@
181
  <# } #>
182
  <?php if ( ! FLBuilderModel::is_post_user_template( 'module' ) && ! $simple_ui ) : ?>
183
  <# if ( ! data.groupLoading && ! data.isRootCol ) { #>
184
- <# if ( ( ! data.colFirst && data.contentWidth > 40 ) || ( data.hasParentCol && data.colFirst && ! data.parentFirst ) ) { #>
185
  <div class="fl-block-col-resize fl-block-col-resize-w<# if ( data.hasParentCol && data.colFirst && ! data.parentFirst ) { #> fl-block-col-resize-parent<# } #>">
186
  <div class="fl-block-col-resize-handle-wrap">
187
  <div class="fl-block-col-resize-feedback fl-block-col-resize-feedback-left"></div>
@@ -190,7 +190,7 @@
190
  </div>
191
  </div>
192
  <# } #>
193
- <# if ( ( ! data.colLast && data.contentWidth > 40 ) || ( data.hasParentCol && data.colLast && ! data.parentLast ) ) { #>
194
  <div class="fl-block-col-resize fl-block-col-resize-e<# if ( data.hasParentCol && data.colLast && ! data.parentLast ) { #> fl-block-col-resize-parent<# } #>">
195
  <div class="fl-block-col-resize-handle-wrap">
196
  <div class="fl-block-col-resize-feedback fl-block-col-resize-feedback-left"></div>
@@ -294,11 +294,21 @@
294
  <script type="text/html" id="tmpl-fl-responsive-preview">
295
  <div class="fl-responsive-preview-mask"></div>
296
  <div class="fl-responsive-preview">
297
- <div class="fl-responsive-preview-content">
298
- <div class="fl-responsive-preview-message">
299
- <?php _e( 'Layout Preview', 'fl-builder' ); ?>
300
- </div>
 
 
 
 
 
 
 
 
 
301
  </div>
 
302
  </div>
303
  </script>
304
  <!-- #tmpl-fl-responsive-preview -->
@@ -466,7 +476,7 @@
466
  }
467
  var isShowingClass = (tab.isShowing) ? 'is-showing' : '' ;
468
  #>
469
- <button data-tab="{{tab.handle}}" class="{{isShowingClass}}">{{tab.name}}</button>
470
  <#
471
  }
472
  #>
@@ -577,9 +587,24 @@
577
  if (view.type === 'separator') {
578
  #><hr><#
579
  } else {
580
- var insetClass = view.isSubItem ? 'fl-inset' : '';
 
 
 
 
 
 
 
 
581
  #>
582
- <button data-view="{{view.handle}}" class="fl-builder--menu-item {{insetClass}}">{{{view.name}}}</button>
 
 
 
 
 
 
 
583
  <# } } #>
584
  </div>
585
  </div>
@@ -607,7 +632,9 @@
607
  if ( _.isUndefined(modules) ) { continue; }
608
  #>
609
  <div id="fl-builder-blocks-{{slug}}" class="fl-builder-blocks-section">
610
- <span class="fl-builder-blocks-section-title">{{title}}</span>
 
 
611
  <div class="fl-builder-blocks-section-content fl-builder-modules">
612
  <# for( var k in modules) {
613
  var module = modules[ k ],
@@ -642,7 +669,9 @@
642
  slug = title.replace(/\s+/g, '-').toLowerCase();
643
  #>
644
  <div id="fl-builder-blocks-{{slug}}" class="fl-builder-blocks-section">
645
- <span class="fl-builder-blocks-section-title">{{title}}</span>
 
 
646
  <div class="fl-builder-blocks-section-content fl-builder-modules">
647
  <# for( var i in modules) {
648
  var module = modules[i],
@@ -674,7 +703,9 @@
674
  #>
675
  <div class="fl-builder-blocks-section">
676
  <# if (title !== '') { #>
677
- <span class="fl-builder-blocks-section-title">{{title}}</span>
 
 
678
  <# } #>
679
  <div class="fl-builder-blocks-section-content fl-builder-module-templates">
680
  <#
@@ -767,7 +798,9 @@
767
  #>
768
  <div class="fl-builder--template-collection-section">
769
  <# if (catHandle !== 'uncategorized' && catHandle !== FLBuilderStrings.undefined && Object.keys(categories).length > 1) { #>
770
- <div class="fl-builder--template-collection-section-name">{{categoryName}}</div>
 
 
771
  <# } #>
772
  <div class="fl-builder--template-collection-section-content">
773
  <#
@@ -824,7 +857,9 @@
824
  #>
825
  <div class="fl-builder-blocks-section">
826
  <# if (catHandle !== 'uncategorized' && catHandle !== FLBuilderStrings.undefined && Object.keys(categories).length > 1) { #>
827
- <span class="fl-builder-blocks-section-title">{{categoryName}}</span>
 
 
828
  <# } #>
829
  <div class="fl-builder-blocks-section-content fl-builder-row-templates">
830
  <#
@@ -875,7 +910,9 @@
875
  #>
876
  <div class="fl-builder-blocks-section">
877
  <# if (catHandle !== 'uncategorized' && catHandle !== FLBuilderStrings.undefined && Object.keys(categories).length > 1) { #>
878
- <span class="fl-builder-blocks-section-title">{{categoryName}}</span>
 
 
879
  <# } #>
880
  <div class="fl-builder-blocks-section-content fl-builder-module-templates">
881
  <#
85
  <# } #>
86
  <?php if ( ! $simple_ui ) : ?>
87
  <# if ( ! data.groupLoading ) { #>
88
+ <# if ( ! data.first || ( data.hasParentCol && data.first && ! data.parentFirst ) ) { #>
89
  <div class="fl-block-col-resize fl-block-col-resize-w<# if ( data.hasParentCol && data.first && ! data.parentFirst ) { #> fl-block-col-resize-parent<# } #>">
90
  <div class="fl-block-col-resize-handle-wrap">
91
  <div class="fl-block-col-resize-feedback fl-block-col-resize-feedback-left"></div>
94
  </div>
95
  </div>
96
  <# } #>
97
+ <# if ( ! data.last || ( data.hasParentCol && data.last && ! data.parentLast ) ) { #>
98
  <div class="fl-block-col-resize fl-block-col-resize-e<# if ( data.hasParentCol && data.last && ! data.parentLast ) { #> fl-block-col-resize-parent<# } #>">
99
  <div class="fl-block-col-resize-handle-wrap">
100
  <div class="fl-block-col-resize-feedback fl-block-col-resize-feedback-left"></div>
146
  <i class="fl-block-col-settings fas fa-columns fl-tip" title="<?php _e( 'Edit Column', 'fl-builder' ); ?>"></i>
147
  <# if ( ! data.isRootCol ) { #>
148
  <ul class="fl-builder-submenu fl-block-col-submenu">
 
149
  <li><a class="fl-block-col-edit" href="javascript:void(0);"><?php _e( 'Column Settings', 'fl-builder' ); ?></a></li>
150
+ <li><a class="fl-block-col-move" href="javascript:void(0);"><?php _e( 'Move Column', 'fl-builder' ); ?><i class="fas fa-arrows-alt"></i></a></li>
151
  <# if ( ( ! data.hasParentCol && data.numCols < 12 ) || ( data.hasParentCol && data.numCols < 4 ) ) { #>
152
  <li><a class="fl-block-col-copy" href="javascript:void(0);"><?php _e( 'Duplicate Column', 'fl-builder' ); ?></a></li>
153
  <# } #>
181
  <# } #>
182
  <?php if ( ! FLBuilderModel::is_post_user_template( 'module' ) && ! $simple_ui ) : ?>
183
  <# if ( ! data.groupLoading && ! data.isRootCol ) { #>
184
+ <# if ( ! data.colFirst || ( data.hasParentCol && data.colFirst && ! data.parentFirst ) ) { #>
185
  <div class="fl-block-col-resize fl-block-col-resize-w<# if ( data.hasParentCol && data.colFirst && ! data.parentFirst ) { #> fl-block-col-resize-parent<# } #>">
186
  <div class="fl-block-col-resize-handle-wrap">
187
  <div class="fl-block-col-resize-feedback fl-block-col-resize-feedback-left"></div>
190
  </div>
191
  </div>
192
  <# } #>
193
+ <# if ( ! data.colLast || ( data.hasParentCol && data.colLast && ! data.parentLast ) ) { #>
194
  <div class="fl-block-col-resize fl-block-col-resize-e<# if ( data.hasParentCol && data.colLast && ! data.parentLast ) { #> fl-block-col-resize-parent<# } #>">
195
  <div class="fl-block-col-resize-handle-wrap">
196
  <div class="fl-block-col-resize-feedback fl-block-col-resize-feedback-left"></div>
294
  <script type="text/html" id="tmpl-fl-responsive-preview">
295
  <div class="fl-responsive-preview-mask"></div>
296
  <div class="fl-responsive-preview">
297
+ <div class="fl-responsive-preview-message">
298
+ <span>
299
+ <?php _e( 'Responsive Editing', 'fl-builder' ); ?>
300
+ </span>
301
+ <button class="fl-builder-button fl-builder-button-large" data-mode="responsive">
302
+ <i class="dashicons dashicons-smartphone"></i>
303
+ </button>
304
+ <button class="fl-builder-button fl-builder-button-large" data-mode="medium">
305
+ <i class="dashicons dashicons-tablet"></i>
306
+ </button>
307
+ <button class="fl-builder-button fl-builder-button-large" data-mode="default">
308
+ <?php _e( 'Exit', 'fl-builder' ); ?>
309
+ </button>
310
  </div>
311
+ <div class="fl-responsive-preview-content"></div>
312
  </div>
313
  </script>
314
  <!-- #tmpl-fl-responsive-preview -->
476
  }
477
  var isShowingClass = (tab.isShowing) ? 'is-showing' : '' ;
478
  #>
479
+ <button data-tab="{{tab.handle}}" class="fl-builder--tab-button {{isShowingClass}}">{{tab.name}}</button>
480
  <#
481
  }
482
  #>
587
  if (view.type === 'separator') {
588
  #><hr><#
589
  } else {
590
+ var parent = view.parent ? 'data-parent="' + view.parent + '"' : '';
591
+ var hasChildrenClass = view.hasChildren ? ' fl-has-children' : '';
592
+ var hasChildrenOpenClass = view.hasChildrenOpen ? ' fl-has-children-showing' : '';
593
+ var insetClass = view.isSubItem ? ' fl-inset' : '';
594
+ var display = '';
595
+
596
+ if ( view.parent && views[ view.parent ] && views[ view.parent ].hasChildrenOpen ) {
597
+ display = ' style="display:block;"';
598
+ }
599
  #>
600
+ <button data-view="{{view.handle}}" {{{parent}}} {{{display}}} class="fl-builder--menu-item{{insetClass}}{{hasChildrenClass}}{{hasChildrenOpenClass}}">
601
+ {{{view.name}}}
602
+ <# if ( view.hasChildren ) { #>
603
+ <svg class="fl-symbol">
604
+ <use xlink:href="#fl-down-caret" />
605
+ </svg>
606
+ <# } #>
607
+ </button>
608
  <# } } #>
609
  </div>
610
  </div>
632
  if ( _.isUndefined(modules) ) { continue; }
633
  #>
634
  <div id="fl-builder-blocks-{{slug}}" class="fl-builder-blocks-section">
635
+ <div class="fl-builder-blocks-section-header">
636
+ <span class="fl-builder-blocks-section-title">{{title}}</span>
637
+ </div>
638
  <div class="fl-builder-blocks-section-content fl-builder-modules">
639
  <# for( var k in modules) {
640
  var module = modules[ k ],
669
  slug = title.replace(/\s+/g, '-').toLowerCase();
670
  #>
671
  <div id="fl-builder-blocks-{{slug}}" class="fl-builder-blocks-section">
672
+ <div class="fl-builder-blocks-section-header">
673
+ <span class="fl-builder-blocks-section-title">{{title}}</span>
674
+ </div>
675
  <div class="fl-builder-blocks-section-content fl-builder-modules">
676
  <# for( var i in modules) {
677
  var module = modules[i],
703
  #>
704
  <div class="fl-builder-blocks-section">
705
  <# if (title !== '') { #>
706
+ <div class="fl-builder-blocks-section-header">
707
+ <span class="fl-builder-blocks-section-title">{{title}}</span>
708
+ </div>
709
  <# } #>
710
  <div class="fl-builder-blocks-section-content fl-builder-module-templates">
711
  <#
798
  #>
799
  <div class="fl-builder--template-collection-section">
800
  <# if (catHandle !== 'uncategorized' && catHandle !== FLBuilderStrings.undefined && Object.keys(categories).length > 1) { #>
801
+ <div class="fl-builder--template-collection-section-header">
802
+ <div class="fl-builder--template-collection-section-name">{{categoryName}}</div>
803
+ </div>
804
  <# } #>
805
  <div class="fl-builder--template-collection-section-content">
806
  <#
857
  #>
858
  <div class="fl-builder-blocks-section">
859
  <# if (catHandle !== 'uncategorized' && catHandle !== FLBuilderStrings.undefined && Object.keys(categories).length > 1) { #>
860
+ <div class="fl-builder-blocks-section-header">
861
+ <span class="fl-builder-blocks-section-title">{{categoryName}}</span>
862
+ </div>
863
  <# } #>
864
  <div class="fl-builder-blocks-section-content fl-builder-row-templates">
865
  <#
910
  #>
911
  <div class="fl-builder-blocks-section">
912
  <# if (catHandle !== 'uncategorized' && catHandle !== FLBuilderStrings.undefined && Object.keys(categories).length > 1) { #>
913
+ <div class="fl-builder-blocks-section-header">
914
+ <span class="fl-builder-blocks-section-title">{{categoryName}}</span>
915
+ </div>
916
  <# } #>
917
  <div class="fl-builder-blocks-section-content fl-builder-module-templates">
918
  <#
includes/ui-settings-form-row.php CHANGED
@@ -1,4 +1,10 @@
1
  <script type="text/html" id="tmpl-fl-builder-settings-row">
 
 
 
 
 
 
2
  <# if ( data.isMultiple && data.supportsMultiple && data.template.length ) {
3
  var values = data.value,
4
  button = FLBuilderStrings.addField.replace( '%s', data.field.label ),
@@ -6,7 +12,7 @@
6
 
7
  data.name += '[]';
8
  #>
9
- <tbody id="fl-field-{{data.rootName}}" class="fl-field fl-builder-field-multiples" data-type="form" data-preview='{{{data.preview}}}'>
10
  <# for( ; i < values.length; i++ ) {
11
  data.index = i;
12
  data.value = values[ i ];
@@ -32,7 +38,7 @@
32
  </tr>
33
  </tbody>
34
  <# } else { #>
35
- <tr id="fl-field-{{data.name}}" class="fl-field{{data.rowClass}}" data-type="{{data.field.type}}" data-preview='{{{data.preview}}}'>
36
  <# var field = FLBuilderSettingsForms.renderField( data ); #>
37
  {{{field}}}
38
  </tr>
1
  <script type="text/html" id="tmpl-fl-builder-settings-row">
2
+ <#
3
+ var connections = false
4
+ if ( 'undefined' !== typeof data.field.connections ) {
5
+ connections = true
6
+ }
7
+ #>
8
  <# if ( data.isMultiple && data.supportsMultiple && data.template.length ) {
9
  var values = data.value,
10
  button = FLBuilderStrings.addField.replace( '%s', data.field.label ),
12
 
13
  data.name += '[]';
14
  #>
15
+ <tbody id="fl-field-{{data.rootName}}" class="fl-field fl-builder-field-multiples" data-type="form" data-preview='{{{data.preview}}}' data-connections="{{{connections}}}">
16
  <# for( ; i < values.length; i++ ) {
17
  data.index = i;
18
  data.value = values[ i ];
38
  </tr>
39
  </tbody>
40
  <# } else { #>
41
+ <tr id="fl-field-{{data.name}}" class="fl-field{{data.rowClass}}" data-type="{{data.field.type}}" data-preview='{{{data.preview}}}' data-connections="{{{connections}}}">
42
  <# var field = FLBuilderSettingsForms.renderField( data ); #>
43
  {{{field}}}
44
  </tr>
includes/ui-settings-form.php CHANGED
@@ -68,7 +68,14 @@
68
 
69
  <# for ( var sectionId in tab.sections ) { #>
70
  <# var section = tab.sections[ sectionId ]; #>
71
- <div id="fl-builder-settings-section-{{sectionId}}" class="fl-builder-settings-section">
 
 
 
 
 
 
 
72
 
73
  <# if ( section.file ) { #>
74
  <div class="fl-legacy-settings-section" data-section="{{sectionId}}" data-tab="{{tabId}}" />
@@ -78,17 +85,26 @@
78
  <# } else { #>
79
 
80
  <# if ( section.title ) { #>
81
- <h3 class="fl-builder-settings-title">{{{section.title}}}</h3>
 
 
 
 
 
 
 
82
  <# } #>
83
 
84
- <# if ( section.description ) { #>
85
- <p class="fl-builder-settings-description">{{{section.description}}}</p>
86
- <# } #>
 
87
 
88
- <table class="fl-form-table">
89
- <# var fields = FLBuilderSettingsForms.renderFields( section.fields, data.settings ); #>
90
- {{{fields}}}
91
- </table>
 
92
 
93
  <# } #>
94
 
68
 
69
  <# for ( var sectionId in tab.sections ) { #>
70
  <# var section = tab.sections[ sectionId ]; #>
71
+ <#
72
+ var isCollapsed = false;
73
+ if ( typeof section.collapsed !== 'undefined' ) {
74
+ isCollapsed = section.collapsed
75
+ }
76
+ var collapsedClass = isCollapsed ? 'fl-builder-settings-section-collapsed' : '';
77
+ #>
78
+ <div id="fl-builder-settings-section-{{sectionId}}" class="fl-builder-settings-section {{collapsedClass}}">
79
 
80
  <# if ( section.file ) { #>
81
  <div class="fl-legacy-settings-section" data-section="{{sectionId}}" data-tab="{{tabId}}" />
85
  <# } else { #>
86
 
87
  <# if ( section.title ) { #>
88
+ <div class="fl-builder-settings-section-header">
89
+ <button class="fl-builder-settings-title">
90
+ <svg class="fl-symbol">
91
+ <use xlink:href="#fl-down-caret" />
92
+ </svg>
93
+ {{{section.title}}}
94
+ </button>
95
+ </div>
96
  <# } #>
97
 
98
+ <div class="fl-builder-settings-section-content">
99
+ <# if ( section.description ) { #>
100
+ <p class="fl-builder-settings-description">{{{section.description}}}</p>
101
+ <# } #>
102
 
103
+ <table class="fl-form-table">
104
+ <# var fields = FLBuilderSettingsForms.renderFields( section.fields, data.settings ); #>
105
+ {{{fields}}}
106
+ </table>
107
+ </div>
108
 
109
  <# } #>
110
 
includes/updater-config.php CHANGED
@@ -3,7 +3,7 @@
3
  if ( class_exists( 'FLUpdater' ) ) {
4
  FLUpdater::add_product(array(
5
  'name' => 'Beaver Builder Plugin (Lite Version)',
6
- 'version' => '2.1.7.2',
7
  'slug' => 'bb-plugin',
8
  'type' => 'plugin',
9
  ));
3
  if ( class_exists( 'FLUpdater' ) ) {
4
  FLUpdater::add_product(array(
5
  'name' => 'Beaver Builder Plugin (Lite Version)',
6
+ 'version' => '2.2.0.6',
7
  'slug' => 'bb-plugin',
8
  'type' => 'plugin',
9
  ));
includes/updater/classes/class-fl-updater.php CHANGED
@@ -124,6 +124,7 @@ final class FLUpdater {
124
 
125
  $transient->response[ $plugin ] = new stdClass();
126
  $transient->response[ $plugin ]->slug = $response->slug;
 
127
  $transient->response[ $plugin ]->new_version = $response->new_version;
128
  $transient->response[ $plugin ]->url = $response->homepage;
129
  $transient->response[ $plugin ]->package = $response->package;
@@ -144,6 +145,7 @@ final class FLUpdater {
144
 
145
  $transient->response[ $this->settings['slug'] ] = array(
146
  'new_version' => $response->new_version,
 
147
  'url' => $response->homepage,
148
  'package' => $response->package,
149
  'tested' => $response->tested,
124
 
125
  $transient->response[ $plugin ] = new stdClass();
126
  $transient->response[ $plugin ]->slug = $response->slug;
127
+ $transient->response[ $plugin ]->plugin = $plugin;
128
  $transient->response[ $plugin ]->new_version = $response->new_version;
129
  $transient->response[ $plugin ]->url = $response->homepage;
130
  $transient->response[ $plugin ]->package = $response->package;
145
 
146
  $transient->response[ $this->settings['slug'] ] = array(
147
  'new_version' => $response->new_version,
148
+ 'theme' => $this->settings['slug'],
149
  'url' => $response->homepage,
150
  'package' => $response->package,
151
  'tested' => $response->tested,
includes/vendor/activecampaign/Connector.class.php CHANGED
@@ -163,12 +163,10 @@ class AC_Connector {
163
  curl_setopt($request, CURLOPT_POSTFIELDS, $data);
164
  $debug_str1 .= "curl_setopt(\$ch, CURLOPT_POSTFIELDS, \"" . $data . "\");\n";
165
  }
166
- curl_setopt($request, CURLOPT_SSL_VERIFYPEER, false);
167
- curl_setopt($request, CURLOPT_SSL_VERIFYHOST, 0);
 
168
  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);
169
- $debug_str1 .= "curl_setopt(\$ch, CURLOPT_SSL_VERIFYPEER, false);\n";
170
- $debug_str1 .= "curl_setopt(\$ch, CURLOPT_SSL_VERIFYHOST, 0);\n";
171
- $debug_str1 .= "curl_setopt(\$ch, CURLOPT_FOLLOWLOCATION, true);\n";
172
  $response = curl_exec($request);
173
  $debug_str1 .= "curl_exec(\$ch);\n";
174
  if ($this->debug) {
@@ -223,4 +221,4 @@ class AC_Connector {
223
 
224
  }
225
 
226
- ?>
163
  curl_setopt($request, CURLOPT_POSTFIELDS, $data);
164
  $debug_str1 .= "curl_setopt(\$ch, CURLOPT_POSTFIELDS, \"" . $data . "\");\n";
165
  }
166
+
167
+ $request = fl_set_curl_safe_opts( $request );
168
+
169
  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);
 
 
 
170
  $response = curl_exec($request);
171
  $debug_str1 .= "curl_exec(\$ch);\n";
172
  if ($this->debug) {
221
 
222
  }
223
 
224
+ ?>
includes/vendor/aweber/oauth_application.php CHANGED
@@ -239,9 +239,9 @@ class OAuthApplication implements AWeberOAuthAdapter {
239
  /**
240
  * _addParametersToUrl
241
  *
242
- * Adds the parameters in associative array $data to the
243
  * given URL
244
- * @param String $url URL
245
  * @param array $data Parameters to be added as a query string to
246
  * the URL provided
247
  * @access protected
@@ -431,7 +431,7 @@ class OAuthApplication implements AWeberOAuthAdapter {
431
  * makeRequest
432
  *
433
  * Public facing function to make a request
434
- *
435
  * @param mixed $method
436
  * @param mixed $url - Reserved characters in query params MUST be escaped
437
  * @param mixed $data - Reserved characters in values MUST NOT be escaped
@@ -441,7 +441,7 @@ class OAuthApplication implements AWeberOAuthAdapter {
441
  public function makeRequest($method, $url, $data=array()) {
442
 
443
  if ($this->debug) echo "\n** {$method}: $url\n";
444
-
445
  switch (strtoupper($method)) {
446
  case 'POST':
447
  $oauth = $this->prepareRequest($method, $url, $data);
@@ -574,7 +574,7 @@ class OAuthApplication implements AWeberOAuthAdapter {
574
  $this->curl->setopt($handle, CURLOPT_HEADER, true);
575
  $this->curl->setopt($handle, CURLOPT_HTTPHEADER, $headers);
576
  $this->curl->setopt($handle, CURLOPT_USERAGENT, $this->userAgent);
577
- $this->curl->setopt($handle, CURLOPT_SSL_VERIFYPEER, FALSE);
578
  $this->curl->setopt($handle, CURLOPT_VERBOSE, FALSE);
579
  $this->curl->setopt($handle, CURLOPT_CONNECTTIMEOUT, 10);
580
  $this->curl->setopt($handle, CURLOPT_TIMEOUT, 90);
239
  /**
240
  * _addParametersToUrl
241
  *
242
+ * Adds the parameters in associative array $data to the
243
  * given URL
244
+ * @param String $url URL
245
  * @param array $data Parameters to be added as a query string to
246
  * the URL provided
247
  * @access protected
431
  * makeRequest
432
  *
433
  * Public facing function to make a request
434
+ *
435
  * @param mixed $method
436
  * @param mixed $url - Reserved characters in query params MUST be escaped
437
  * @param mixed $data - Reserved characters in values MUST NOT be escaped
441
  public function makeRequest($method, $url, $data=array()) {
442
 
443
  if ($this->debug) echo "\n** {$method}: $url\n";
444
+
445
  switch (strtoupper($method)) {
446
  case 'POST':
447
  $oauth = $this->prepareRequest($method, $url, $data);
574
  $this->curl->setopt($handle, CURLOPT_HEADER, true);
575
  $this->curl->setopt($handle, CURLOPT_HTTPHEADER, $headers);
576
  $this->curl->setopt($handle, CURLOPT_USERAGENT, $this->userAgent);
577
+ $handle = fl_set_curl_safe_opts( $handle );
578
  $this->curl->setopt($handle, CURLOPT_VERBOSE, FALSE);
579
  $this->curl->setopt($handle, CURLOPT_CONNECTTIMEOUT, 10);
580
  $this->curl->setopt($handle, CURLOPT_TIMEOUT, 90);
includes/vendor/drip/Drip_API.class.php CHANGED
@@ -24,7 +24,7 @@ Class Drip_Api {
24
 
25
  /**
26
  * Accepts the token and saves it internally.
27
- *
28
  * @param string $api_token e.g. qsor48ughrjufyu2dadraasfa1212424
29
  * @throws Exception
30
  */
@@ -166,7 +166,7 @@ Class Drip_Api {
166
 
167
  /**
168
  * Sends a request to add a subscriber and returns its record or false
169
- *
170
  * @param array $params
171
  * @param array/bool $account
172
  */
@@ -174,10 +174,10 @@ Class Drip_Api {
174
  if (empty($params['account_id'])) {
175
  throw new Exception("Account ID not specified");
176
  }
177
-
178
  $account_id = $params['account_id'];
179
  unset($params['account_id']); // clear it from the params
180
-
181
  $api_action = "/$account_id/subscribers";
182
  $url = $this->api_end_point . $api_action;
183
 
@@ -200,7 +200,7 @@ Class Drip_Api {
200
  }
201
 
202
  /**
203
- *
204
  * @param array $params
205
  * @param array $params
206
  */
@@ -244,7 +244,7 @@ Class Drip_Api {
244
 
245
  /**
246
  * Subscribes a user to a given campaign for a given account.
247
- *
248
  * @param array $params
249
  * @param array $accounts
250
  */
@@ -293,9 +293,9 @@ Class Drip_Api {
293
  }
294
 
295
  /**
296
- *
297
  * Some keys are removed from the params so they don't get send with the other data to Drip.
298
- *
299
  * @param array $params
300
  * @param array $params
301
  */
@@ -321,7 +321,7 @@ Class Drip_Api {
321
 
322
  $api_action = "$account_id/subscribers/$subscriber_id/unsubscribe";
323
  $url = $this->api_end_point . $api_action;
324
-
325
  $req_params = $params;
326
  $res = $this->make_request($url, $req_params, self::POST);
327
 
@@ -347,7 +347,7 @@ Class Drip_Api {
347
  */
348
  public function tag_subscriber($params) {
349
  $status = false;
350
-
351
  if (empty($params['account_id'])) {
352
  throw new Exception("Account ID not specified");
353
  }
@@ -381,7 +381,7 @@ Class Drip_Api {
381
  /**
382
  *
383
  * This calls DELETE /:account_id/tags to remove the tags. It just returns some status code no content
384
- *
385
  * @param array $params
386
  * @param bool $status success or failure
387
  */
@@ -453,7 +453,7 @@ Class Drip_Api {
453
 
454
  return $status;
455
  }
456
-
457
  /**
458
  *
459
  * @param string $url
@@ -480,8 +480,7 @@ Class Drip_Api {
480
 
481
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
482
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
483
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
484
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
485
  curl_setopt($ch, CURLOPT_TIMEOUT, $this->timeout);
486
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $this->connect_timeout);
487
  curl_setopt($ch, CURLOPT_USERPWD, $this->api_token . ":" . ''); // no pwd
@@ -514,7 +513,7 @@ Class Drip_Api {
514
 
515
  $buffer = curl_exec($ch);
516
  $status = !empty($buffer);
517
-
518
  $data = array(
519
  'url' => $url,
520
  'params' => $params,
@@ -553,7 +552,7 @@ Class Drip_Api {
553
  public function get_error_message() {
554
  return $this->error_message;
555
  }
556
-
557
  /**
558
  * Retruns whatever was accumultaed in error_code
559
  * @return string
@@ -590,7 +589,7 @@ Class Drip_Api {
590
  */
591
  if (!empty($json_arr['errors'])) { // JSON
592
  $messages = $error_codes = array();
593
-
594
  foreach ($json_arr['errors'] as $rec) {
595
  $messages[] = $rec['message'];
596
  $error_codes[] = $rec['code'];
@@ -600,7 +599,7 @@ Class Drip_Api {
600
  $this->error_message = join("\n", $messages);
601
  } else { // There's no JSON in the reply so we'll extract the message from the HTML page by removing the HTML.
602
  $msg = $res['buffer'];
603
-
604
  $msg = preg_replace('#.*?<body[^>]*>#si', '', $msg);
605
  $msg = preg_replace('#</body[^>]*>.*#si', '', $msg);
606
  $msg = strip_tags($msg);
@@ -625,4 +624,4 @@ Class Drip_Api {
625
  public function __call($method, $args) {
626
  return array();
627
  }
628
- }
24
 
25
  /**
26
  * Accepts the token and saves it internally.
27
+ *
28
  * @param string $api_token e.g. qsor48ughrjufyu2dadraasfa1212424
29
  * @throws Exception
30
  */
166
 
167
  /**
168
  * Sends a request to add a subscriber and returns its record or false
169
+ *
170
  * @param array $params
171
  * @param array/bool $account
172
  */
174
  if (empty($params['account_id'])) {
175
  throw new Exception("Account ID not specified");
176
  }
177
+
178
  $account_id = $params['account_id'];
179
  unset($params['account_id']); // clear it from the params
180
+
181
  $api_action = "/$account_id/subscribers";
182
  $url = $this->api_end_point . $api_action;
183
 
200
  }
201
 
202
  /**
203
+ *
204
  * @param array $params
205
  * @param array $params
206
  */
244
 
245
  /**
246
  * Subscribes a user to a given campaign for a given account.
247
+ *
248
  * @param array $params
249
  * @param array $accounts
250
  */
293
  }
294
 
295
  /**
296
+ *
297
  * Some keys are removed from the params so they don't get send with the other data to Drip.
298
+ *
299
  * @param array $params
300
  * @param array $params
301
  */
321
 
322
  $api_action = "$account_id/subscribers/$subscriber_id/unsubscribe";
323
  $url = $this->api_end_point . $api_action;
324
+
325
  $req_params = $params;
326
  $res = $this->make_request($url, $req_params, self::POST);
327
 
347
  */
348
  public function tag_subscriber($params) {
349
  $status = false;
350
+
351
  if (empty($params['account_id'])) {
352
  throw new Exception("Account ID not specified");
353
  }
381
  /**
382
  *
383
  * This calls DELETE /:account_id/tags to remove the tags. It just returns some status code no content
384
+ *
385
  * @param array $params
386
  * @param bool $status success or failure
387
  */
453
 
454
  return $status;
455
  }
456
+
457
  /**
458
  *
459
  * @param string $url
480
 
481
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
482
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
483
+ $ch = fl_set_curl_safe_opts( $ch );
 
484
  curl_setopt($ch, CURLOPT_TIMEOUT, $this->timeout);
485
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $this->connect_timeout);
486
  curl_setopt($ch, CURLOPT_USERPWD, $this->api_token . ":" . ''); // no pwd
513
 
514
  $buffer = curl_exec($ch);
515
  $status = !empty($buffer);
516
+
517
  $data = array(
518
  'url' => $url,
519
  'params' => $params,
552
  public function get_error_message() {
553
  return $this->error_message;
554
  }
555
+
556
  /**
557
  * Retruns whatever was accumultaed in error_code
558
  * @return string
589
  */
590
  if (!empty($json_arr['errors'])) { // JSON
591
  $messages = $error_codes = array();
592
+
593
  foreach ($json_arr['errors'] as $rec) {
594
  $messages[] = $rec['message'];
595
  $error_codes[] = $rec['code'];
599
  $this->error_message = join("\n", $messages);
600
  } else { // There's no JSON in the reply so we'll extract the message from the HTML page by removing the HTML.
601
  $msg = $res['buffer'];
602
+
603
  $msg = preg_replace('#.*?<body[^>]*>#si', '', $msg);
604
  $msg = preg_replace('#</body[^>]*>.*#si', '', $msg);
605
  $msg = strip_tags($msg);
624
  public function __call($method, $args) {
625
  return array();
626
  }
627
+ }
includes/vendor/enormail/Enormail/Rest.php CHANGED
@@ -4,19 +4,19 @@
4
  *
5
  * This class provides all the tools to communicate
6
  * with a REST API.
7
- *
8
  * @package Enormail API
9
  * @version 1.0
10
  * @author Enormail
11
  */
12
  class Rest {
13
-
14
  protected $host = 'https://api.enormail.eu/api/1.0/';
15
-
16
  protected $key = '';
17
-
18
  protected $version = '1.0';
19
-
20
  public function __construct($key)
21
  {
22
  $this->key = $key;
@@ -26,22 +26,22 @@ class Rest {
26
  {
27
  return $this->_exec('GET', $uri, $params);
28
  }
29
-
30
  public function post($uri, $params = array())
31
  {
32
  return $this->_exec('POST', $uri, $params);
33
  }
34
-
35
  public function put($uri, $params = array())
36
  {
37
  return $this->_exec('PUT', $uri, $params);
38
  }
39
-
40
  public function delete($uri, $params = array())
41
  {
42
  return $this->_exec('DELETE', $uri, $params);
43
  }
44
-
45
  private function _exec($method, $uri, $params = array())
46
  {
47
  // Init
@@ -55,63 +55,62 @@ class Rest {
55
  curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
56
  curl_setopt($ch, CURLOPT_USERPWD, $this->key.':password');
57
  curl_setopt($ch, CURLOPT_USERAGENT, 'EM REST API WRAPPER '.$this->version);
58
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
59
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
60
-
61
  // Set request
62
  switch(strtoupper($method))
63
  {
64
  case 'GET' :
65
-
66
  curl_setopt($ch, CURLOPT_URL, $this->host . $uri . '?' . http_build_query($params));
67
-
68
  break;
69
-
70
  case 'POST' :
71
-
72
  curl_setopt($ch, CURLOPT_URL, $this->host . $uri);
73
  curl_setopt($ch, CURLOPT_POST, true);
74
  curl_setopt($ch, CURLOPT_POSTFIELDS, $this->_prep_post_vars($params));
75
-
76
  break;
77
-
78
  case 'PUT' :
79
-
80
  curl_setopt($ch, CURLOPT_URL, $this->host . $uri);
81
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
82
  curl_setopt($ch, CURLOPT_POSTFIELDS, $this->_prep_post_vars($params));
83
-
84
  break;
85
-
86
  case 'DELETE' :
87
-
88
  curl_setopt($ch, CURLOPT_URL, $this->host . $uri . '?' . http_build_query($params));
89
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
90
-
91
- break;
92
  }
93
-
94
  // Fetch output
95
  $output = curl_exec($ch);
96
  $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
97
-
98
  // Close connection
99
  curl_close($ch);
100
-
101
  // Set response
102
  $return = new Response(array(
103
  'code' => $code,
104
  'response' => $output
105
  ));
106
-
107
  // Return
108
  return (string) $return;
109
  }
110
-
111
  private function _prep_post_vars($vars, $sep = '&')
112
  {
113
  $str = '';
114
-
115
  foreach ($vars as $k => $v)
116
  {
117
  if (is_array($v))
@@ -120,31 +119,31 @@ class Rest {
120
  {
121
  $str .= urlencode($k).'['.$vk.']'.'='.urlencode($vi).$sep;
122
  }
123
- }
124
- else
125
  {
126
  $str .= urlencode($k).'='.urlencode($v).$sep;
127
  }
128
  }
129
-
130
  return substr($str, 0, -1);
131
  }
132
-
133
  }
134
 
135
  class Response {
136
-
137
  public function __construct($response)
138
  {
139
  // Set response
140
  $this->http_code = $response['code'];
141
  $this->http_response = $response['response'];
142
  }
143
-
144
  public function __toString()
145
  {
146
  return $this->http_response;
147
  }
148
 
149
-
150
- }
4
  *
5
  * This class provides all the tools to communicate
6
  * with a REST API.
7
+ *
8
  * @package Enormail API
9
  * @version 1.0
10
  * @author Enormail
11
  */
12
  class Rest {
13
+
14
  protected $host = 'https://api.enormail.eu/api/1.0/';
15
+
16
  protected $key = '';
17
+
18
  protected $version = '1.0';
19
+
20
  public function __construct($key)
21
  {
22
  $this->key = $key;
26
  {
27
  return $this->_exec('GET', $uri, $params);
28
  }
29
+
30
  public function post($uri, $params = array())
31
  {
32
  return $this->_exec('POST', $uri, $params);
33
  }
34
+
35
  public function put($uri, $params = array())
36
  {
37
  return $this->_exec('PUT', $uri, $params);
38
  }
39
+
40
  public function delete($uri, $params = array())
41
  {
42
  return $this->_exec('DELETE', $uri, $params);
43
  }
44
+
45
  private function _exec($method, $uri, $params = array())
46
  {
47
  // Init
55
  curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
56
  curl_setopt($ch, CURLOPT_USERPWD, $this->key.':password');
57
  curl_setopt($ch, CURLOPT_USERAGENT, 'EM REST API WRAPPER '.$this->version);
58
+ $ch = fl_set_curl_safe_opts( $ch );
59
+
 
60
  // Set request
61
  switch(strtoupper($method))
62
  {
63
  case 'GET' :
64
+
65
  curl_setopt($ch, CURLOPT_URL, $this->host . $uri . '?' . http_build_query($params));
66
+
67
  break;
68
+
69
  case 'POST' :
70
+
71
  curl_setopt($ch, CURLOPT_URL, $this->host . $uri);
72
  curl_setopt($ch, CURLOPT_POST, true);
73
  curl_setopt($ch, CURLOPT_POSTFIELDS, $this->_prep_post_vars($params));
74
+
75
  break;
76
+
77
  case 'PUT' :
78
+
79
  curl_setopt($ch, CURLOPT_URL, $this->host . $uri);
80
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
81
  curl_setopt($ch, CURLOPT_POSTFIELDS, $this->_prep_post_vars($params));
82
+
83
  break;
84
+
85
  case 'DELETE' :
86
+
87
  curl_setopt($ch, CURLOPT_URL, $this->host . $uri . '?' . http_build_query($params));
88
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
89
+
90
+ break;
91
  }
92
+
93
  // Fetch output
94
  $output = curl_exec($ch);
95
  $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
96
+
97
  // Close connection
98
  curl_close($ch);
99
+
100
  // Set response
101
  $return = new Response(array(
102
  'code' => $code,
103
  'response' => $output
104
  ));
105
+
106
  // Return
107
  return (string) $return;
108
  }
109
+
110
  private function _prep_post_vars($vars, $sep = '&')
111
  {
112
  $str = '';
113
+
114
  foreach ($vars as $k => $v)
115
  {
116
  if (is_array($v))
119
  {
120
  $str .= urlencode($k).'['.$vk.']'.'='.urlencode($vi).$sep;
121
  }
122
+ }
123
+ else
124
  {
125
  $str .= urlencode($k).'='.urlencode($v).$sep;
126
  }
127
  }
128
+
129
  return substr($str, 0, -1);
130
  }
131
+
132
  }
133
 
134
  class Response {
135
+
136
  public function __construct($response)
137
  {
138
  // Set response
139
  $this->http_code = $response['code'];
140
  $this->http_response = $response['response'];
141
  }
142
+
143
  public function __toString()
144
  {
145
  return $this->http_response;
146
  }
147
 
148
+
149
+ }
includes/vendor/icontact/iContactApi.php CHANGED
@@ -3,17 +3,17 @@
3
  * @name iContactApi
4
  * @package iContact
5
  * @author iContact <www.icontact.com>
6
- * @description This class is a wrapper for the iContact API.
7
- * It makes integrating iContact into your app as simple as
8
  * calling a method.
9
  * @version 2.0
10
  **/
11
  class iContactApi {
12
-
13
  //////////////////////////////////////////////////////////////////////////////
14
  /// Properties //////////////////////////////////////////////////////////////
15
  ////////////////////////////////////////////////////////////////////////////
16
-
17
  protected static $oInstance = null; // This holds the instance of this class
18
  protected $iAccountId = null; // This holds the account ID
19
  protected $iClientFolderId = null; // This holds the client folder ID
@@ -26,7 +26,7 @@ class iContactApi {
26
  protected $aSearchParameters = array(); // This is our container for search params
27
  protected $iTotal = 0; // If the results return a total, it will be stored here
28
  protected $aWarnings = array(); // This holds the warnings encountered with the iContact API
29
-
30
  //////////////////////////////////////////////////////////////////////////////
31
  /// Singleton ///////////////////////////////////////////////////////////////
32
  ////////////////////////////////////////////////////////////////////////////
@@ -39,12 +39,12 @@ class iContactApi {
39
  * @return iContactApi $this
40
  **/
41
  public static function setInstance($oInstance) {
42
-
43
  self::$oInstance = $oInstance;
44
  // Return instance of class
45
  return self::$oInstance;
46
  }
47
-
48
  /**
49
  * This gets the singleton instance
50
  * @static
@@ -64,7 +64,7 @@ class iContactApi {
64
  return self::$oInstance;
65
  }
66
  }
67
-
68
  /**
69
  * This resets the singleton instance to null
70
  * @static
@@ -82,7 +82,7 @@ class iContactApi {
82
 
83
  /**
84
  * This is our constuctor and simply checks for
85
- * defined constants and configuration values and
86
  * then builds the configuration from that
87
  * @access protected
88
  * @return iContactApi $this
@@ -90,11 +90,11 @@ class iContactApi {
90
  protected function __construct() {
91
  // Check for constants
92
  $aConstantMap = array(
93
- // 'ICONTACT_APIVERSION',
94
- // 'ICONTACT_APISANDBOXURL',
95
- 'ICONTACT_APPID' => 'appId',
96
- // 'ICONTACT_APIURL',
97
- 'ICONTACT_APIUSERNAME' => 'apiUsername',
98
  'ICONTACT_APIPASSWORD' => 'apiPassword'
99
  );
100
  // Loop through the map
@@ -207,7 +207,7 @@ class iContactApi {
207
  } else {
208
  $aContact['status'] = 'normal';
209
  }
210
-
211
  // Make the call
212
  $aContacts = $this->makeCall("/a/{$this->setAccountId()}/c/{$this->setClientFolderId()}/contacts", 'POST', array($aContact), 'contacts');
213
  // Return the contact
@@ -244,12 +244,12 @@ class iContactApi {
244
  public function addList($sName, $iWelcomeMessageId, $bEmailOwnerOnChange = true, $bWelcomeOnManualAdd = false, $bWelcomeOnSignupAdd = false, $sDescription = null, $sPublicName = null) {
245
  // Setup the list
246
  $aList = array(
247
- 'name' => $sName,
248
- 'welcomeMessageId' => $iWelcomeMessageId,
249
- 'emailOwnerOnChange' => intval($bEmailOwnerOnChange),
250
- 'welcomeOnManualAdd' => intval($bWelcomeOnManualAdd),
251
- 'welcomeOnSignupAdd' => intval($bWelcomeOnSignupAdd),
252
- 'description' => $sDescription,
253
  'publicname' => $sPublicName
254
  );
255
  // Make the call
@@ -259,7 +259,7 @@ class iContactApi {
259
  }
260
 
261
  /**
262
- * This method adds a message to
263
  * your iContact API account
264
  * @access public
265
  * @param string $sSubject
@@ -276,11 +276,11 @@ class iContactApi {
276
  $aValidMessageTypes = array('normal', 'autoresponder', 'welcome', 'confirmation');
277
  // Setup the message data
278
  $aMessage = array(
279
- 'campaignId' => $iCampaignId,
280
- 'htmlBody' => $sHtmlBody,
281
- 'messageName' => $sMessageName,
282
- 'messageType' => (in_array($sMessageType, $aValidMessageTypes) ? $sMessageType : 'normal'),
283
- 'subject' => $sSubject,
284
  'textBody' => $sTextBody
285
  );
286
  // Add the message
@@ -301,7 +301,7 @@ class iContactApi {
301
  // Check for existing order by parameters
302
  if (empty($this->aSearchParameters['orderby'])) {
303
  // Check for a direction
304
- if (empty($sDirection)) {
305
  // Add just the field
306
  $this->aSearchParameters['orderby'] = (string) $sField;
307
  } else {
@@ -359,16 +359,15 @@ class iContactApi {
359
  $rHandle = curl_init();
360
  // Give our handle headers
361
  curl_setopt($rHandle, CURLOPT_HTTPHEADER, $this->getHeaders());
362
- // Tell our handle that we
363
  // want the data returned
364
  curl_setopt($rHandle, CURLOPT_RETURNTRANSFER, true);
365
- // Turn SSL verifcation off, so scripts do not get broken
366
- curl_setopt($rHandle, CURLOPT_SSL_VERIFYPEER, false);
367
  // Determine the request
368
  // method we are using
369
  switch (strtoupper($sMethod)) {
370
  // Deleting data
371
- case 'DELETE' :
372
  // Set the cURL custom header
373
  curl_setopt($rHandle, CURLOPT_CUSTOMREQUEST, 'DELETE');
374
  break;
@@ -388,7 +387,7 @@ class iContactApi {
388
  // POST data to send to the API
389
  $this->addError('No POST data was provided.');
390
  } else {
391
- // Tell our handle that
392
  // we want to send data
393
  curl_setopt($rHandle, CURLOPT_POST, true);
394
  // Give our handle the data
@@ -470,7 +469,7 @@ class iContactApi {
470
  // Return success
471
  return true;
472
  } elseif (empty($sReturnKey)) {
473
- // Return the entire
474
  // base response
475
  return $aResponse;
476
  } else {
@@ -494,10 +493,10 @@ class iContactApi {
494
  // Send the message
495
  $aSends = $this->makeCall("/a/{$this->setAccountId()}/c/{$this->setClientFolderId()}/sends", 'POST', array(
496
  array(
497
- 'excludeListIds' => $sExcludeListIds,
498
- 'excludeSegmentIds' => $sExcludeSegmentIds,
499
- 'includeListIds' => $sIncludeListIds,
500
- 'includeSegmentIds' => $sIncludeSegmentIds,
501
  'scheduledTime' => (empty($sScheduledTime) ? null : date('c', strtotime($sScheduledTime)))
502
  )
503
  ), 'sends');
@@ -519,8 +518,8 @@ class iContactApi {
519
  // Setup the subscription and make the call
520
  $aSubscriptions = $this->makeCall("/a/{$this->setAccountId()}/c/{$this->setClientFolderId()}/subscriptions", 'POST', array(
521
  array(
522
- 'contactId' => $iContactId,
523
- 'listId' => $iListId,
524
  'status' => $sStatus
525
  )
526
  ), 'subscriptions');
@@ -648,7 +647,7 @@ class iContactApi {
648
  // Make the call
649
  $aUploads = $this->makeCall("/a/{$this->setAccountId()}/c/{$this->setClientFolderId()}/uploads", 'POST', array(
650
  array(
651
- 'action' => 'add',
652
  'listIds' => $iListId
653
  )
654
  ), 'uploads');
@@ -690,12 +689,12 @@ class iContactApi {
690
  public function updateList($iListId, $sName, $iWelcomeMessageId, $bEmailOwnerOnChange = true, $bWelcomeOnManualAdd = false, $bWelcomeOnSignupAdd = false, $sDescription = null, $sPublicName = null) {
691
  // Setup the list
692
  $aList = array(
693
- 'name' => $sName,
694
- 'welcomeMessageId' => $iWelcomeMessageId,
695
- 'emailOwnerOnChange' => intval($bEmailOwnerOnChange),
696
- 'welcomeOnManualAdd' => intval($bWelcomeOnManualAdd),
697
- 'welcomeOnSignupAdd' => intval($bWelcomeOnSignupAdd),
698
- 'description' => $sDescription,
699
  'publicname' => $sPublicName
700
  );
701
  // Return the list
@@ -705,7 +704,7 @@ class iContactApi {
705
  /**
706
  * This method tells the system whether
707
  * or not to use the sandbox or not, the
708
- * sandbox is turned off by defualt and
709
  * by default this method turns it on
710
  * @access public
711
  * @param bool [$bUse]
@@ -790,7 +789,7 @@ class iContactApi {
790
  }
791
 
792
  /**
793
- * This method returns any set
794
  * errors in the current instance
795
  * @access public
796
  * @return array|bool
@@ -798,7 +797,7 @@ class iContactApi {
798
  public function getErrors() {
799
  // Check for errors
800
  if (empty($this->aErrors)) {
801
- // Return false, for
802
  // there are no errors
803
  return false;
804
  } else {
@@ -816,18 +815,18 @@ class iContactApi {
816
  public function getHeaders() {
817
  // Return the headers
818
  return array(
819
- 'Except:',
820
- 'Accept: application/json',
821
- 'Content-type: application/json',
822
  'Api-Version: ' . (defined('ICONTACT_APIVERSION') ? constant('ICONTACT_APIVERSION') : '2.2'),
823
- 'Api-AppId: ' . (!empty($this->aConfig['appId']) ? $this->aConfig['appId'] : constant('ICONTACT_APPID')),
824
- 'Api-Username: '. (!empty($this->aConfig['apiUsername']) ? $this->aConfig['apiUsername'] : constant('ICONTACT_APIUSERNAME')),
825
  'Api-Password: '. (!empty($this->aConfig['apiPassword']) ? $this->aConfig['apiPassword'] : constant('ICONTACT_APIPASSWORD'))
826
  );
827
  }
828
 
829
  /**
830
- * This method returns the last
831
  * API POST request JSON
832
  * @access public
833
  * @param bool [$bDecode]
@@ -920,7 +919,7 @@ class iContactApi {
920
  }
921
 
922
  /**
923
- * This method simply returns the base URL for
924
  * your API/Sandbox account
925
  * @access public
926
  * @param bool [$bFull]
@@ -933,7 +932,7 @@ class iContactApi {
933
  $sApiUrl = defined('ICONTACT_APIURL') ? constant('ICONTACT_APIURL') : 'https://app.icontact.com/icp';
934
  // Determine which one needs to be returned with the URL
935
  $sBaseUrl = ($this->bSandbox === true) ? $sSandboxUrl : $sApiUrl;
936
- // Do we need to return the entire url or just
937
  // the base url of the API service
938
  if ($bFull === false) {
939
  // Return the base url
@@ -996,9 +995,9 @@ class iContactApi {
996
  // Override the Account ID
997
  $this->iAccountId = (integer) $iAccountId;
998
  } else {
999
- // Check to see if the
1000
  // Account ID has already
1001
- // been stored in the
1002
  // instance
1003
  if (empty($this->iAccountId)) {
1004
  // Load the Account ID
@@ -1021,11 +1020,11 @@ class iContactApi {
1021
  // Inevitably return instance
1022
  return $this->iAccountId;
1023
  }
1024
-
1025
  /**
1026
- * This method fetches the Client
1027
  * Folder ID from the iContact API
1028
- * if it has not already been stored
1029
  * in the instance and the Account ID
1030
  * has also been stored in the instance
1031
  * @access public
@@ -1033,7 +1032,7 @@ class iContactApi {
1033
  * @return integer
1034
  **/
1035
  public function setClientFolderId($iClientFolderId = null) {
1036
- // Check for an overriding
1037
  // Client Folder ID
1038
  if (!empty($iClientFolderId)) {
1039
  // Set the Client Folder ID
3
  * @name iContactApi
4
  * @package iContact
5
  * @author iContact <www.icontact.com>
6
+ * @description This class is a wrapper for the iContact API.
7
+ * It makes integrating iContact into your app as simple as
8
  * calling a method.
9
  * @version 2.0
10
  **/
11
  class iContactApi {
12
+
13
  //////////////////////////////////////////////////////////////////////////////
14
  /// Properties //////////////////////////////////////////////////////////////
15
  ////////////////////////////////////////////////////////////////////////////
16
+
17
  protected static $oInstance = null; // This holds the instance of this class
18
  protected $iAccountId = null; // This holds the account ID
19
  protected $iClientFolderId = null; // This holds the client folder ID
26
  protected $aSearchParameters = array(); // This is our container for search params
27
  protected $iTotal = 0; // If the results return a total, it will be stored here
28
  protected $aWarnings = array(); // This holds the warnings encountered with the iContact API
29
+
30
  //////////////////////////////////////////////////////////////////////////////
31
  /// Singleton ///////////////////////////////////////////////////////////////
32
  ////////////////////////////////////////////////////////////////////////////
39
  * @return iContactApi $this
40
  **/
41
  public static function setInstance($oInstance) {
42
+
43
  self::$oInstance = $oInstance;
44
  // Return instance of class
45
  return self::$oInstance;
46
  }
47
+
48
  /**
49
  * This gets the singleton instance
50
  * @static
64
  return self::$oInstance;
65
  }
66
  }
67
+
68
  /**
69
  * This resets the singleton instance to null
70
  * @static
82
 
83
  /**
84
  * This is our constuctor and simply checks for
85
+ * defined constants and configuration values and
86
  * then builds the configuration from that
87
  * @access protected
88
  * @return iContactApi $this
90
  protected function __construct() {
91
  // Check for constants
92
  $aConstantMap = array(
93
+ // 'ICONTACT_APIVERSION',
94
+ // 'ICONTACT_APISANDBOXURL',
95
+ 'ICONTACT_APPID' => 'appId',
96
+ // 'ICONTACT_APIURL',
97
+ 'ICONTACT_APIUSERNAME' => 'apiUsername',
98
  'ICONTACT_APIPASSWORD' => 'apiPassword'
99
  );
100
  // Loop through the map
207
  } else {
208
  $aContact['status'] = 'normal';
209
  }
210
+
211
  // Make the call
212
  $aContacts = $this->makeCall("/a/{$this->setAccountId()}/c/{$this->setClientFolderId()}/contacts", 'POST', array($aContact), 'contacts');
213
  // Return the contact
244
  public function addList($sName, $iWelcomeMessageId, $bEmailOwnerOnChange = true, $bWelcomeOnManualAdd = false, $bWelcomeOnSignupAdd = false, $sDescription = null, $sPublicName = null) {
245
  // Setup the list
246
  $aList = array(
247
+ 'name' => $sName,
248
+ 'welcomeMessageId' => $iWelcomeMessageId,
249
+ 'emailOwnerOnChange' => intval($bEmailOwnerOnChange),
250
+ 'welcomeOnManualAdd' => intval($bWelcomeOnManualAdd),
251
+ 'welcomeOnSignupAdd' => intval($bWelcomeOnSignupAdd),
252
+ 'description' => $sDescription,
253
  'publicname' => $sPublicName
254
  );
255
  // Make the call
259
  }
260
 
261
  /**
262
+ * This method adds a message to
263
  * your iContact API account
264
  * @access public
265
  * @param string $sSubject
276
  $aValidMessageTypes = array('normal', 'autoresponder', 'welcome', 'confirmation');
277
  // Setup the message data
278
  $aMessage = array(
279
+ 'campaignId' => $iCampaignId,
280
+ 'htmlBody' => $sHtmlBody,
281
+ 'messageName' => $sMessageName,
282
+ 'messageType' => (in_array($sMessageType, $aValidMessageTypes) ? $sMessageType : 'normal'),
283
+ 'subject' => $sSubject,
284
  'textBody' => $sTextBody
285
  );
286
  // Add the message
301
  // Check for existing order by parameters
302
  if (empty($this->aSearchParameters['orderby'])) {
303
  // Check for a direction
304
+ if (empty($sDirection)) {
305
  // Add just the field
306
  $this->aSearchParameters['orderby'] = (string) $sField;
307
  } else {
359
  $rHandle = curl_init();
360
  // Give our handle headers
361
  curl_setopt($rHandle, CURLOPT_HTTPHEADER, $this->getHeaders());
362
+ // Tell our handle that we
363
  // want the data returned
364
  curl_setopt($rHandle, CURLOPT_RETURNTRANSFER, true);
365
+ $rHandle = fl_set_curl_safe_opts( $rHandle );
 
366
  // Determine the request
367
  // method we are using
368
  switch (strtoupper($sMethod)) {
369
  // Deleting data
370
+ case 'DELETE' :
371
  // Set the cURL custom header
372
  curl_setopt($rHandle, CURLOPT_CUSTOMREQUEST, 'DELETE');
373
  break;
387
  // POST data to send to the API
388
  $this->addError('No POST data was provided.');
389
  } else {
390
+ // Tell our handle that
391
  // we want to send data
392
  curl_setopt($rHandle, CURLOPT_POST, true);
393
  // Give our handle the data
469
  // Return success
470
  return true;
471
  } elseif (empty($sReturnKey)) {
472
+ // Return the entire
473
  // base response
474
  return $aResponse;
475
  } else {
493
  // Send the message
494
  $aSends = $this->makeCall("/a/{$this->setAccountId()}/c/{$this->setClientFolderId()}/sends", 'POST', array(
495
  array(
496
+ 'excludeListIds' => $sExcludeListIds,
497
+ 'excludeSegmentIds' => $sExcludeSegmentIds,
498
+ 'includeListIds' => $sIncludeListIds,
499
+ 'includeSegmentIds' => $sIncludeSegmentIds,
500
  'scheduledTime' => (empty($sScheduledTime) ? null : date('c', strtotime($sScheduledTime)))
501
  )
502
  ), 'sends');
518
  // Setup the subscription and make the call
519
  $aSubscriptions = $this->makeCall("/a/{$this->setAccountId()}/c/{$this->setClientFolderId()}/subscriptions", 'POST', array(
520
  array(
521
+ 'contactId' => $iContactId,
522
+ 'listId' => $iListId,
523
  'status' => $sStatus
524
  )
525
  ), 'subscriptions');
647
  // Make the call
648
  $aUploads = $this->makeCall("/a/{$this->setAccountId()}/c/{$this->setClientFolderId()}/uploads", 'POST', array(
649
  array(
650
+ 'action' => 'add',
651
  'listIds' => $iListId
652
  )
653
  ), 'uploads');
689
  public function updateList($iListId, $sName, $iWelcomeMessageId, $bEmailOwnerOnChange = true, $bWelcomeOnManualAdd = false, $bWelcomeOnSignupAdd = false, $sDescription = null, $sPublicName = null) {
690
  // Setup the list
691
  $aList = array(
692
+ 'name' => $sName,
693
+ 'welcomeMessageId' => $iWelcomeMessageId,
694
+ 'emailOwnerOnChange' => intval($bEmailOwnerOnChange),
695
+ 'welcomeOnManualAdd' => intval($bWelcomeOnManualAdd),
696
+ 'welcomeOnSignupAdd' => intval($bWelcomeOnSignupAdd),
697
+ 'description' => $sDescription,
698
  'publicname' => $sPublicName
699
  );
700
  // Return the list
704
  /**
705
  * This method tells the system whether
706
  * or not to use the sandbox or not, the
707
+ * sandbox is turned off by defualt and
708
  * by default this method turns it on
709
  * @access public
710
  * @param bool [$bUse]
789
  }
790
 
791
  /**
792
+ * This method returns any set
793
  * errors in the current instance
794
  * @access public
795
  * @return array|bool
797
  public function getErrors() {
798
  // Check for errors
799
  if (empty($this->aErrors)) {
800
+ // Return false, for
801
  // there are no errors
802
  return false;
803
  } else {
815
  public function getHeaders() {
816
  // Return the headers
817
  return array(
818
+ 'Except:',
819
+ 'Accept: application/json',
820
+ 'Content-type: application/json',
821
  'Api-Version: ' . (defined('ICONTACT_APIVERSION') ? constant('ICONTACT_APIVERSION') : '2.2'),
822
+ 'Api-AppId: ' . (!empty($this->aConfig['appId']) ? $this->aConfig['appId'] : constant('ICONTACT_APPID')),
823
+ 'Api-Username: '. (!empty($this->aConfig['apiUsername']) ? $this->aConfig['apiUsername'] : constant('ICONTACT_APIUSERNAME')),
824
  'Api-Password: '. (!empty($this->aConfig['apiPassword']) ? $this->aConfig['apiPassword'] : constant('ICONTACT_APIPASSWORD'))
825
  );
826
  }
827
 
828
  /**
829
+ * This method returns the last
830
  * API POST request JSON
831
  * @access public
832
  * @param bool [$bDecode]
919
  }
920
 
921
  /**
922
+ * This method simply returns the base URL for
923
  * your API/Sandbox account
924
  * @access public
925
  * @param bool [$bFull]
932
  $sApiUrl = defined('ICONTACT_APIURL') ? constant('ICONTACT_APIURL') : 'https://app.icontact.com/icp';
933
  // Determine which one needs to be returned with the URL
934
  $sBaseUrl = ($this->bSandbox === true) ? $sSandboxUrl : $sApiUrl;
935
+ // Do we need to return the entire url or just
936
  // the base url of the API service
937
  if ($bFull === false) {
938
  // Return the base url
995
  // Override the Account ID
996
  $this->iAccountId = (integer) $iAccountId;
997
  } else {
998
+ // Check to see if the
999
  // Account ID has already
1000
+ // been stored in the
1001
  // instance
1002
  if (empty($this->iAccountId)) {
1003
  // Load the Account ID
1020
  // Inevitably return instance
1021
  return $this->iAccountId;
1022
  }
1023
+
1024
  /**
1025
+ * This method fetches the Client
1026
  * Folder ID from the iContact API
1027
+ * if it has not already been stored
1028
  * in the instance and the Account ID
1029
  * has also been stored in the instance
1030
  * @access public
1032
  * @return integer
1033
  **/
1034
  public function setClientFolderId($iClientFolderId = null) {
1035
+ // Check for an overriding
1036
  // Client Folder ID
1037
  if (!empty($iClientFolderId)) {
1038
  // Set the Client Folder ID
includes/vendor/mailerlite/FL_ML_Rest_Base.php CHANGED
@@ -150,8 +150,7 @@ class FL_ML_Rest_Base
150
  curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);
151
  curl_setopt($curlHandle, CURLOPT_HTTPHEADER, array('Accept: ' . $this->acceptType));
152
 
153
- curl_setopt($curlHandle, CURLOPT_SSL_VERIFYHOST, false);
154
- curl_setopt($curlHandle, CURLOPT_SSL_VERIFYPEER, false);
155
  curl_setopt($curlHandle, CURLOPT_FOLLOWLOCATION, true);
156
  }
157
 
150
  curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);
151
  curl_setopt($curlHandle, CURLOPT_HTTPHEADER, array('Accept: ' . $this->acceptType));
152
 
153
+ $curlHandle = fl_set_curl_safe_opts( $curlHandle );
 
154
  curl_setopt($curlHandle, CURLOPT_FOLLOWLOCATION, true);
155
  }
156
 
includes/vendor/mautic/MauticApi.php CHANGED
@@ -311,8 +311,6 @@ class MauticApi
311
  //Set default CURL options
312
  $options = array(
313
  CURLOPT_RETURNTRANSFER => true,
314
- CURLOPT_SSL_VERIFYPEER => false,
315
- //CURLOPT_SSL_VERIFYHOST => false,
316
  CURLOPT_HEADER => true
317
  );
318
 
311
  //Set default CURL options
312
  $options = array(
313
  CURLOPT_RETURNTRANSFER => true,
 
 
314
  CURLOPT_HEADER => true
315
  );
316
 
includes/vendor/sendinblue/Mailin.php CHANGED
@@ -26,10 +26,7 @@ class Mailin_Rest
26
  $ch = curl_init($called_url);
27
  $auth_header = 'api-key:'.$this->api_key;
28
  $content_header = "Content-Type:application/json";
29
- if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
30
- // Windows only over-ride
31
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
32
- }
33
  curl_setopt($ch, CURLOPT_HTTPHEADER, array($auth_header,$content_header));
34
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
35
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
26
  $ch = curl_init($called_url);
27
  $auth_header = 'api-key:'.$this->api_key;
28
  $content_header = "Content-Type:application/json";
29
+ $ch = fl_set_curl_safe_opts( $ch );
 
 
 
30
  curl_setopt($ch, CURLOPT_HTTPHEADER, array($auth_header,$content_header));
31
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
32
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
js/build/builder.bundle.js CHANGED
@@ -65,6 +65,21 @@
65
  /************************************************************************/
66
  /******/ ([
67
  /* 0 */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  /***/ (function(module, exports) {
69
 
70
  // shim for using process in browser
@@ -253,21 +268,6 @@ process.chdir = function (dir) {
253
  process.umask = function() { return 0; };
254
 
255
 
256
- /***/ }),
257
- /* 1 */
258
- /***/ (function(module, exports, __webpack_require__) {
259
-
260
- "use strict";
261
- /* WEBPACK VAR INJECTION */(function(process) {
262
-
263
- if (process.env.NODE_ENV === 'production') {
264
- module.exports = __webpack_require__(13);
265
- } else {
266
- module.exports = __webpack_require__(14);
267
- }
268
-
269
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
270
-
271
  /***/ }),
272
  /* 2 */
273
  /***/ (function(module, exports, __webpack_require__) {
@@ -465,7 +465,7 @@ function invariant(condition, format, a, b, c, d, e, f) {
465
  }
466
 
467
  module.exports = invariant;
468
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
469
 
470
  /***/ }),
471
  /* 5 */
@@ -489,7 +489,7 @@ if (process.env.NODE_ENV !== 'production') {
489
  }
490
 
491
  module.exports = emptyObject;
492
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
493
 
494
  /***/ }),
495
  /* 6 */
@@ -558,7 +558,7 @@ if (process.env.NODE_ENV !== 'production') {
558
  }
559
 
560
  module.exports = warning;
561
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
562
 
563
  /***/ }),
564
  /* 7 */
@@ -657,7 +657,7 @@ function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
657
 
658
  module.exports = checkPropTypes;
659
 
660
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
661
 
662
  /***/ }),
663
  /* 8 */
@@ -861,7 +861,7 @@ module.exports = containsNode;
861
  "use strict";
862
 
863
 
864
- var _react = __webpack_require__(1);
865
 
866
  var _react2 = _interopRequireDefault(_react);
867
 
@@ -877,7 +877,7 @@ var _ui = __webpack_require__(26);
877
 
878
  var _ui2 = _interopRequireDefault(_ui);
879
 
880
- __webpack_require__(31);
881
 
882
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
883
 
@@ -892,7 +892,7 @@ _reactDom2.default.render(_react2.default.createElement(
892
  /***/ (function(module, exports, __webpack_require__) {
893
 
894
  "use strict";
895
- /** @license React v16.4.1
896
  * react.production.min.js
897
  *
898
  * Copyright (c) 2013-present, Facebook, Inc.
@@ -912,7 +912,7 @@ h=0;!(d=a.next()).done;)d=d.value,f=b+T(d,h++),g+=S(d,f,e,c);else"object"===d&&(
912
  function V(a,b,e){var c=a.result,d=a.keyPrefix;a=a.func.call(a.context,b,a.count++);Array.isArray(a)?W(a,c,e,q.thatReturnsArgument):null!=a&&(N(a)&&(b=d+(!a.key||b&&b.key===a.key?"":(""+a.key).replace(O,"$&/")+"/")+e,a={$$typeof:t,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}),c.push(a))}function W(a,b,e,c,d){var g="";null!=e&&(g=(""+e).replace(O,"$&/")+"/");b=Q(b,g,c,d);null==a||S(a,"",V,b);R(b)}
913
  var X={Children:{map:function(a,b,e){if(null==a)return a;var c=[];W(a,c,null,b,e);return c},forEach:function(a,b,e){if(null==a)return a;b=Q(null,null,b,e);null==a||S(a,"",U,b);R(b)},count:function(a){return null==a?0:S(a,"",q.thatReturnsNull,null)},toArray:function(a){var b=[];W(a,b,null,q.thatReturnsArgument);return b},only:function(a){N(a)?void 0:D("143");return a}},createRef:function(){return{current:null}},Component:F,PureComponent:H,createContext:function(a,b){void 0===b&&(b=null);a={$$typeof:z,
914
  _calculateChangedBits:b,_defaultValue:a,_currentValue:a,_currentValue2:a,_changedBits:0,_changedBits2:0,Provider:null,Consumer:null};a.Provider={$$typeof:y,_context:a};return a.Consumer=a},forwardRef:function(a){return{$$typeof:B,render:a}},Fragment:v,StrictMode:w,unstable_AsyncMode:A,unstable_Profiler:x,createElement:M,cloneElement:function(a,b,e){null===a||void 0===a?D("267",a):void 0;var c=void 0,d=k({},a.props),g=a.key,h=a.ref,f=a._owner;if(null!=b){void 0!==b.ref&&(h=b.ref,f=J.current);void 0!==
915
- b.key&&(g=""+b.key);var l=void 0;a.type&&a.type.defaultProps&&(l=a.type.defaultProps);for(c in b)K.call(b,c)&&!L.hasOwnProperty(c)&&(d[c]=void 0===b[c]&&void 0!==l?l[c]:b[c])}c=arguments.length-2;if(1===c)d.children=e;else if(1<c){l=Array(c);for(var m=0;m<c;m++)l[m]=arguments[m+2];d.children=l}return{$$typeof:t,type:a.type,key:g,ref:h,props:d,_owner:f}},createFactory:function(a){var b=M.bind(null,a);b.type=a;return b},isValidElement:N,version:"16.4.1",__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentOwner:J,
916
  assign:k}},Y={default:X},Z=Y&&X||Y;module.exports=Z.default?Z.default:Z;
917
 
918
 
@@ -921,7 +921,7 @@ assign:k}},Y={default:X},Z=Y&&X||Y;module.exports=Z.default?Z.default:Z;
921
  /***/ (function(module, exports, __webpack_require__) {
922
 
923
  "use strict";
924
- /* WEBPACK VAR INJECTION */(function(process) {/** @license React v16.4.1
925
  * react.development.js
926
  *
927
  * Copyright (c) 2013-present, Facebook, Inc.
@@ -947,7 +947,7 @@ var checkPropTypes = __webpack_require__(7);
947
 
948
  // TODO: this is special because it gets imported during build.
949
 
950
- var ReactVersion = '16.4.1';
951
 
952
  // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
953
  // nor polyfill, then a plain number is used for performance.
@@ -2408,7 +2408,7 @@ module.exports = react;
2408
  })();
2409
  }
2410
 
2411
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
2412
 
2413
  /***/ }),
2414
  /* 15 */
@@ -2473,14 +2473,14 @@ if (process.env.NODE_ENV === 'production') {
2473
  module.exports = __webpack_require__(20);
2474
  }
2475
 
2476
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
2477
 
2478
  /***/ }),
2479
  /* 17 */
2480
  /***/ (function(module, exports, __webpack_require__) {
2481
 
2482
  "use strict";
2483
- /** @license React v16.4.1
2484
  * react-dom.production.min.js
2485
  *
2486
  * Copyright (c) 2013-present, Facebook, Inc.
@@ -2492,7 +2492,7 @@ if (process.env.NODE_ENV === 'production') {
2492
  /*
2493
  Modernizr 3.0.0pre (Custom Build) | MIT
2494
  */
2495
- var aa=__webpack_require__(4),ba=__webpack_require__(1),m=__webpack_require__(8),p=__webpack_require__(3),v=__webpack_require__(2),da=__webpack_require__(9),ea=__webpack_require__(10),fa=__webpack_require__(11),ha=__webpack_require__(5);
2496
  function A(a){for(var b=arguments.length-1,c="https://reactjs.org/docs/error-decoder.html?invariant="+a,d=0;d<b;d++)c+="&args[]="+encodeURIComponent(arguments[d+1]);aa(!1,"Minified React error #"+a+"; visit %s for the full message or use the non-minified dev environment for full errors and additional helpful warnings. ",c)}ba?void 0:A("227");
2497
  function ia(a,b,c,d,e,f,g,h,k){this._hasCaughtError=!1;this._caughtError=null;var n=Array.prototype.slice.call(arguments,3);try{b.apply(c,n)}catch(r){this._caughtError=r,this._hasCaughtError=!0}}
2498
  var B={_caughtError:null,_hasCaughtError:!1,_rethrowError:null,_hasRethrowError:!1,invokeGuardedCallback:function(a,b,c,d,e,f,g,h,k){ia.apply(B,arguments)},invokeGuardedCallbackAndCatchFirstError:function(a,b,c,d,e,f,g,h,k){B.invokeGuardedCallback.apply(this,arguments);if(B.hasCaughtError()){var n=B.clearCaughtError();B._hasRethrowError||(B._hasRethrowError=!0,B._rethrowError=n)}},rethrowCaughtError:function(){return ka.apply(B,arguments)},hasCaughtError:function(){return B._hasCaughtError},clearCaughtError:function(){if(B._hasCaughtError){var a=
@@ -2532,194 +2532,194 @@ var ec=ba.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,f
2532
  60113,sc="function"===typeof Symbol&&Symbol.iterator;function tc(a){if(null===a||"undefined"===typeof a)return null;a=sc&&a[sc]||a["@@iterator"];return"function"===typeof a?a:null}
2533
  function uc(a){var b=a.type;if("function"===typeof b)return b.displayName||b.name;if("string"===typeof b)return b;switch(b){case pc:return"AsyncMode";case mc:return"Context.Consumer";case ic:return"ReactFragment";case hc:return"ReactPortal";case kc:return"Profiler("+a.pendingProps.id+")";case lc:return"Context.Provider";case jc:return"StrictMode";case rc:return"Timeout"}if("object"===typeof b&&null!==b)switch(b.$$typeof){case qc:return a=b.render.displayName||b.render.name||"",""!==a?"ForwardRef("+
2534
  a+")":"ForwardRef"}return null}function vc(a){var b="";do{a:switch(a.tag){case 0:case 1:case 2:case 5:var c=a._debugOwner,d=a._debugSource;var e=uc(a);var f=null;c&&(f=uc(c));c=d;e="\n in "+(e||"Unknown")+(c?" (at "+c.fileName.replace(/^.*[\\\/]/,"")+":"+c.lineNumber+")":f?" (created by "+f+")":"");break a;default:e=""}b+=e;a=a.return}while(a);return b}
2535
- var wc=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,xc={},zc={};function Ac(a){if(zc.hasOwnProperty(a))return!0;if(xc.hasOwnProperty(a))return!1;if(wc.test(a))return zc[a]=!0;xc[a]=!0;return!1}
2536
- function Bc(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case "function":case "symbol":return!0;case "boolean":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return"data-"!==a&&"aria-"!==a;default:return!1}}function Cc(a,b,c,d){if(null===b||"undefined"===typeof b||Bc(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}
2537
- function I(a,b,c,d,e){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b}var J={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(a){J[a]=new I(a,0,!1,a,null)});
2538
- [["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(a){var b=a[0];J[b]=new I(b,1,!1,a[1],null)});["contentEditable","draggable","spellCheck","value"].forEach(function(a){J[a]=new I(a,2,!1,a.toLowerCase(),null)});["autoReverse","externalResourcesRequired","preserveAlpha"].forEach(function(a){J[a]=new I(a,2,!1,a,null)});
2539
- "allowFullScreen async autoFocus autoPlay controls default defer disabled formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(a){J[a]=new I(a,3,!1,a.toLowerCase(),null)});["checked","multiple","muted","selected"].forEach(function(a){J[a]=new I(a,3,!0,a.toLowerCase(),null)});["capture","download"].forEach(function(a){J[a]=new I(a,4,!1,a.toLowerCase(),null)});
2540
- ["cols","rows","size","span"].forEach(function(a){J[a]=new I(a,6,!1,a.toLowerCase(),null)});["rowSpan","start"].forEach(function(a){J[a]=new I(a,5,!1,a.toLowerCase(),null)});var Dc=/[\-:]([a-z])/g;function Ec(a){return a[1].toUpperCase()}
2541
- "accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(a){var b=a.replace(Dc,
2542
- Ec);J[b]=new I(b,1,!1,a,null)});"xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(a){var b=a.replace(Dc,Ec);J[b]=new I(b,1,!1,a,"http://www.w3.org/1999/xlink")});["xml:base","xml:lang","xml:space"].forEach(function(a){var b=a.replace(Dc,Ec);J[b]=new I(b,1,!1,a,"http://www.w3.org/XML/1998/namespace")});J.tabIndex=new I("tabIndex",1,!1,"tabindex",null);
2543
- function Fc(a,b,c,d){var e=J.hasOwnProperty(b)?J[b]:null;var f=null!==e?0===e.type:d?!1:!(2<b.length)||"o"!==b[0]&&"O"!==b[0]||"n"!==b[1]&&"N"!==b[1]?!1:!0;f||(Cc(b,c,e,d)&&(c=null),d||null===e?Ac(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,""+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:"":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?"":""+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c))))}
2544
- function Gc(a,b){var c=b.checked;return p({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Hc(a,b){var c=null==b.defaultValue?"":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Ic(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:"checkbox"===b.type||"radio"===b.type?null!=b.checked:null!=b.value}}function Jc(a,b){b=b.checked;null!=b&&Fc(a,"checked",b,!1)}
2545
- function Kc(a,b){Jc(a,b);var c=Ic(b.value);if(null!=c)if("number"===b.type){if(0===c&&""===a.value||a.value!=c)a.value=""+c}else a.value!==""+c&&(a.value=""+c);b.hasOwnProperty("value")?Lc(a,b.type,c):b.hasOwnProperty("defaultValue")&&Lc(a,b.type,Ic(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}
2546
- function Mc(a,b,c){if(b.hasOwnProperty("value")||b.hasOwnProperty("defaultValue")){b=""+a._wrapperState.initialValue;var d=a.value;c||b===d||(a.value=b);a.defaultValue=b}c=a.name;""!==c&&(a.name="");a.defaultChecked=!a.defaultChecked;a.defaultChecked=!a.defaultChecked;""!==c&&(a.name=c)}function Lc(a,b,c){if("number"!==b||a.ownerDocument.activeElement!==a)null==c?a.defaultValue=""+a._wrapperState.initialValue:a.defaultValue!==""+c&&(a.defaultValue=""+c)}
2547
- function Ic(a){switch(typeof a){case "boolean":case "number":case "object":case "string":case "undefined":return a;default:return""}}var Nc={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:"blur change click focus input keydown keyup selectionchange".split(" ")}};function Oc(a,b,c){a=H.getPooled(Nc.change,a,b,c);a.type="change";Ob(c);Ya(a);return a}var Pc=null,Qc=null;function Rc(a){Ia(a,!1)}function Sc(a){var b=Oa(a);if(dc(b))return a}
2548
- function Tc(a,b){if("change"===a)return b}var Uc=!1;m.canUseDOM&&(Uc=$b("input")&&(!document.documentMode||9<document.documentMode));function Vc(){Pc&&(Pc.detachEvent("onpropertychange",Wc),Qc=Pc=null)}function Wc(a){"value"===a.propertyName&&Sc(Qc)&&(a=Oc(Qc,a,Zb(a)),Wb(Rc,a))}function Xc(a,b,c){"focus"===a?(Vc(),Pc=b,Qc=c,Pc.attachEvent("onpropertychange",Wc)):"blur"===a&&Vc()}function Yc(a){if("selectionchange"===a||"keyup"===a||"keydown"===a)return Sc(Qc)}
2549
- function Zc(a,b){if("click"===a)return Sc(b)}function $c(a,b){if("input"===a||"change"===a)return Sc(b)}
2550
- var ad={eventTypes:Nc,_isInputEventSupported:Uc,extractEvents:function(a,b,c,d){var e=b?Oa(b):window,f=void 0,g=void 0,h=e.nodeName&&e.nodeName.toLowerCase();"select"===h||"input"===h&&"file"===e.type?f=Tc:Yb(e)?Uc?f=$c:(f=Yc,g=Xc):(h=e.nodeName)&&"input"===h.toLowerCase()&&("checkbox"===e.type||"radio"===e.type)&&(f=Zc);if(f&&(f=f(a,b)))return Oc(f,c,d);g&&g(a,e,b);"blur"===a&&(a=e._wrapperState)&&a.controlled&&"number"===e.type&&Lc(e,"number",e.value)}},bd=H.extend({view:null,detail:null}),cd={Alt:"altKey",
2551
- Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function dd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=cd[a])?!!b[a]:!1}function ed(){return dd}
2552
- var fd=bd.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:ed,button:null,buttons:null,relatedTarget:function(a){return a.relatedTarget||(a.fromElement===a.srcElement?a.toElement:a.fromElement)}}),gd=fd.extend({pointerId:null,width:null,height:null,pressure:null,tiltX:null,tiltY:null,pointerType:null,isPrimary:null}),hd={mouseEnter:{registrationName:"onMouseEnter",dependencies:["mouseout","mouseover"]},
2553
- mouseLeave:{registrationName:"onMouseLeave",dependencies:["mouseout","mouseover"]},pointerEnter:{registrationName:"onPointerEnter",dependencies:["pointerout","pointerover"]},pointerLeave:{registrationName:"onPointerLeave",dependencies:["pointerout","pointerover"]}},id={eventTypes:hd,extractEvents:function(a,b,c,d){var e="mouseover"===a||"pointerover"===a,f="mouseout"===a||"pointerout"===a;if(e&&(c.relatedTarget||c.fromElement)||!f&&!e)return null;e=d.window===d?d:(e=d.ownerDocument)?e.defaultView||
2554
- e.parentWindow:window;f?(f=b,b=(b=c.relatedTarget||c.toElement)?Na(b):null):f=null;if(f===b)return null;var g=void 0,h=void 0,k=void 0,n=void 0;if("mouseout"===a||"mouseover"===a)g=fd,h=hd.mouseLeave,k=hd.mouseEnter,n="mouse";else if("pointerout"===a||"pointerover"===a)g=gd,h=hd.pointerLeave,k=hd.pointerEnter,n="pointer";a=null==f?e:Oa(f);e=null==b?e:Oa(b);h=g.getPooled(h,f,c,d);h.type=n+"leave";h.target=a;h.relatedTarget=e;c=g.getPooled(k,b,c,d);c.type=n+"enter";c.target=e;c.relatedTarget=a;Za(h,
2555
- c,f,b);return[h,c]}};function jd(a){var b=a;if(a.alternate)for(;b.return;)b=b.return;else{if(0!==(b.effectTag&2))return 1;for(;b.return;)if(b=b.return,0!==(b.effectTag&2))return 1}return 3===b.tag?2:3}function kd(a){2!==jd(a)?A("188"):void 0}
2556
- function ld(a){var b=a.alternate;if(!b)return b=jd(a),3===b?A("188"):void 0,1===b?null:a;for(var c=a,d=b;;){var e=c.return,f=e?e.alternate:null;if(!e||!f)break;if(e.child===f.child){for(var g=e.child;g;){if(g===c)return kd(e),a;if(g===d)return kd(e),b;g=g.sibling}A("188")}if(c.return!==d.return)c=e,d=f;else{g=!1;for(var h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===c){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}g?
2557
- void 0:A("189")}}c.alternate!==d?A("190"):void 0}3!==c.tag?A("188"):void 0;return c.stateNode.current===c?a:b}function md(a){a=ld(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}
2558
- function nd(a){a=ld(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child&&4!==b.tag)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}var od=H.extend({animationName:null,elapsedTime:null,pseudoElement:null}),pd=H.extend({clipboardData:function(a){return"clipboardData"in a?a.clipboardData:window.clipboardData}}),qd=bd.extend({relatedTarget:null});
2559
- function rd(a){var b=a.keyCode;"charCode"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}
2560
- var sd={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},td={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",
2561
- 116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},ud=bd.extend({key:function(a){if(
65
  /************************************************************************/
66
  /******/ ([
67
  /* 0 */
68
+ /***/ (function(module, exports, __webpack_require__) {
69
+
70
+ "use strict";
71
+ /* WEBPACK VAR INJECTION */(function(process) {
72
+
73
+ if (process.env.NODE_ENV === 'production') {
74
+ module.exports = __webpack_require__(13);
75
+ } else {
76
+ module.exports = __webpack_require__(14);
77
+ }
78
+
79
+ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
80
+
81
+ /***/ }),
82
+ /* 1 */
83
  /***/ (function(module, exports) {
84
 
85
  // shim for using process in browser
268
  process.umask = function() { return 0; };
269
 
270
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
271
  /***/ }),
272
  /* 2 */
273
  /***/ (function(module, exports, __webpack_require__) {
465
  }
466
 
467
  module.exports = invariant;
468
+ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
469
 
470
  /***/ }),
471
  /* 5 */
489
  }
490
 
491
  module.exports = emptyObject;
492
+ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
493
 
494
  /***/ }),
495
  /* 6 */
558
  }
559
 
560
  module.exports = warning;
561
+ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
562
 
563
  /***/ }),
564
  /* 7 */
657
 
658
  module.exports = checkPropTypes;
659
 
660
+ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
661
 
662
  /***/ }),
663
  /* 8 */
861
  "use strict";
862
 
863
 
864
+ var _react = __webpack_require__(0);
865
 
866
  var _react2 = _interopRequireDefault(_react);
867
 
877
 
878
  var _ui2 = _interopRequireDefault(_ui);
879
 
880
+ __webpack_require__(33);
881
 
882
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
883
 
892
  /***/ (function(module, exports, __webpack_require__) {
893
 
894
  "use strict";
895
+ /** @license React v16.4.2
896
  * react.production.min.js
897
  *
898
  * Copyright (c) 2013-present, Facebook, Inc.
912
  function V(a,b,e){var c=a.result,d=a.keyPrefix;a=a.func.call(a.context,b,a.count++);Array.isArray(a)?W(a,c,e,q.thatReturnsArgument):null!=a&&(N(a)&&(b=d+(!a.key||b&&b.key===a.key?"":(""+a.key).replace(O,"$&/")+"/")+e,a={$$typeof:t,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}),c.push(a))}function W(a,b,e,c,d){var g="";null!=e&&(g=(""+e).replace(O,"$&/")+"/");b=Q(b,g,c,d);null==a||S(a,"",V,b);R(b)}
913
  var X={Children:{map:function(a,b,e){if(null==a)return a;var c=[];W(a,c,null,b,e);return c},forEach:function(a,b,e){if(null==a)return a;b=Q(null,null,b,e);null==a||S(a,"",U,b);R(b)},count:function(a){return null==a?0:S(a,"",q.thatReturnsNull,null)},toArray:function(a){var b=[];W(a,b,null,q.thatReturnsArgument);return b},only:function(a){N(a)?void 0:D("143");return a}},createRef:function(){return{current:null}},Component:F,PureComponent:H,createContext:function(a,b){void 0===b&&(b=null);a={$$typeof:z,
914
  _calculateChangedBits:b,_defaultValue:a,_currentValue:a,_currentValue2:a,_changedBits:0,_changedBits2:0,Provider:null,Consumer:null};a.Provider={$$typeof:y,_context:a};return a.Consumer=a},forwardRef:function(a){return{$$typeof:B,render:a}},Fragment:v,StrictMode:w,unstable_AsyncMode:A,unstable_Profiler:x,createElement:M,cloneElement:function(a,b,e){null===a||void 0===a?D("267",a):void 0;var c=void 0,d=k({},a.props),g=a.key,h=a.ref,f=a._owner;if(null!=b){void 0!==b.ref&&(h=b.ref,f=J.current);void 0!==
915
+ b.key&&(g=""+b.key);var l=void 0;a.type&&a.type.defaultProps&&(l=a.type.defaultProps);for(c in b)K.call(b,c)&&!L.hasOwnProperty(c)&&(d[c]=void 0===b[c]&&void 0!==l?l[c]:b[c])}c=arguments.length-2;if(1===c)d.children=e;else if(1<c){l=Array(c);for(var m=0;m<c;m++)l[m]=arguments[m+2];d.children=l}return{$$typeof:t,type:a.type,key:g,ref:h,props:d,_owner:f}},createFactory:function(a){var b=M.bind(null,a);b.type=a;return b},isValidElement:N,version:"16.4.2",__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentOwner:J,
916
  assign:k}},Y={default:X},Z=Y&&X||Y;module.exports=Z.default?Z.default:Z;
917
 
918
 
921
  /***/ (function(module, exports, __webpack_require__) {
922
 
923
  "use strict";
924
+ /* WEBPACK VAR INJECTION */(function(process) {/** @license React v16.4.2
925
  * react.development.js
926
  *
927
  * Copyright (c) 2013-present, Facebook, Inc.
947
 
948
  // TODO: this is special because it gets imported during build.
949
 
950
+ var ReactVersion = '16.4.2';
951
 
952
  // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
953
  // nor polyfill, then a plain number is used for performance.
2408
  })();
2409
  }
2410
 
2411
+ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
2412
 
2413
  /***/ }),
2414
  /* 15 */
2473
  module.exports = __webpack_require__(20);
2474
  }
2475
 
2476
+ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
2477
 
2478
  /***/ }),
2479
  /* 17 */
2480
  /***/ (function(module, exports, __webpack_require__) {
2481
 
2482
  "use strict";
2483
+ /** @license React v16.4.2
2484
  * react-dom.production.min.js
2485
  *
2486
  * Copyright (c) 2013-present, Facebook, Inc.
2492
  /*
2493
  Modernizr 3.0.0pre (Custom Build) | MIT
2494
  */
2495
+ var aa=__webpack_require__(4),ba=__webpack_require__(0),m=__webpack_require__(8),p=__webpack_require__(3),v=__webpack_require__(2),da=__webpack_require__(9),ea=__webpack_require__(10),fa=__webpack_require__(11),ha=__webpack_require__(5);
2496
  function A(a){for(var b=arguments.length-1,c="https://reactjs.org/docs/error-decoder.html?invariant="+a,d=0;d<b;d++)c+="&args[]="+encodeURIComponent(arguments[d+1]);aa(!1,"Minified React error #"+a+"; visit %s for the full message or use the non-minified dev environment for full errors and additional helpful warnings. ",c)}ba?void 0:A("227");
2497
  function ia(a,b,c,d,e,f,g,h,k){this._hasCaughtError=!1;this._caughtError=null;var n=Array.prototype.slice.call(arguments,3);try{b.apply(c,n)}catch(r){this._caughtError=r,this._hasCaughtError=!0}}
2498
  var B={_caughtError:null,_hasCaughtError:!1,_rethrowError:null,_hasRethrowError:!1,invokeGuardedCallback:function(a,b,c,d,e,f,g,h,k){ia.apply(B,arguments)},invokeGuardedCallbackAndCatchFirstError:function(a,b,c,d,e,f,g,h,k){B.invokeGuardedCallback.apply(this,arguments);if(B.hasCaughtError()){var n=B.clearCaughtError();B._hasRethrowError||(B._hasRethrowError=!0,B._rethrowError=n)}},rethrowCaughtError:function(){return ka.apply(B,arguments)},hasCaughtError:function(){return B._hasCaughtError},clearCaughtError:function(){if(B._hasCaughtError){var a=
2532
  60113,sc="function"===typeof Symbol&&Symbol.iterator;function tc(a){if(null===a||"undefined"===typeof a)return null;a=sc&&a[sc]||a["@@iterator"];return"function"===typeof a?a:null}
2533
  function uc(a){var b=a.type;if("function"===typeof b)return b.displayName||b.name;if("string"===typeof b)return b;switch(b){case pc:return"AsyncMode";case mc:return"Context.Consumer";case ic:return"ReactFragment";case hc:return"ReactPortal";case kc:return"Profiler("+a.pendingProps.id+")";case lc:return"Context.Provider";case jc:return"StrictMode";case rc:return"Timeout"}if("object"===typeof b&&null!==b)switch(b.$$typeof){case qc:return a=b.render.displayName||b.render.name||"",""!==a?"ForwardRef("+
2534
  a+")":"ForwardRef"}return null}function vc(a){var b="";do{a:switch(a.tag){case 0:case 1:case 2:case 5:var c=a._debugOwner,d=a._debugSource;var e=uc(a);var f=null;c&&(f=uc(c));c=d;e="\n in "+(e||"Unknown")+(c?" (at "+c.fileName.replace(/^.*[\\\/]/,"")+":"+c.lineNumber+")":f?" (created by "+f+")":"");break a;default:e=""}b+=e;a=a.return}while(a);return b}