@duetds/components 6.9.6 → 6.9.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (506) hide show
  1. package/hydrate/index.js +1246 -58
  2. package/lib/cjs/duet-action-button.cjs.entry.js +1 -1
  3. package/lib/cjs/duet-alert.cjs.entry.js +1 -1
  4. package/lib/cjs/duet-badge.cjs.entry.js +1 -1
  5. package/lib/cjs/duet-breadcrumb.cjs.entry.js +1 -1
  6. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +1 -1
  7. package/lib/cjs/duet-button_2.cjs.entry.js +1 -1
  8. package/lib/cjs/duet-callout.cjs.entry.js +5 -2
  9. package/lib/cjs/duet-caption_4.cjs.entry.js +1 -1
  10. package/lib/cjs/duet-card.cjs.entry.js +1 -1
  11. package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
  12. package/lib/cjs/duet-checkmark.cjs.entry.js +1 -1
  13. package/lib/cjs/duet-choice_2.cjs.entry.js +5 -3
  14. package/lib/cjs/duet-collapsible.cjs.entry.js +1 -1
  15. package/lib/cjs/duet-combobox.cjs.entry.js +1 -1
  16. package/lib/cjs/duet-contact-card.cjs.entry.js +1 -1
  17. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  18. package/lib/cjs/duet-date-picker.cjs.entry.js +2 -2
  19. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  20. package/lib/cjs/duet-editable-table_3.cjs.entry.js +12 -4
  21. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  22. package/lib/cjs/duet-fieldset.cjs.entry.js +1 -1
  23. package/lib/cjs/duet-footer.cjs.entry.js +1 -1
  24. package/lib/cjs/duet-grid_2.cjs.entry.js +1 -1
  25. package/lib/cjs/duet-header_2.cjs.entry.js +1 -1
  26. package/lib/cjs/duet-hero.cjs.entry.js +4 -3
  27. package/lib/cjs/duet-icon.cjs.entry.js +1 -1
  28. package/lib/cjs/duet-input_2.cjs.entry.js +1 -1
  29. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  30. package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
  31. package/lib/cjs/duet-menu-bar-button.cjs.entry.js +1 -1
  32. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +1 -1
  33. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +1 -1
  34. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +1 -1
  35. package/lib/cjs/duet-menu-bar.cjs.entry.js +1 -1
  36. package/lib/cjs/duet-modal.cjs.entry.js +2 -2
  37. package/lib/cjs/duet-multiselect.cjs.entry.js +1 -1
  38. package/lib/cjs/duet-nav.cjs.entry.js +1 -1
  39. package/lib/cjs/duet-notification_2.cjs.entry.js +1 -1
  40. package/lib/cjs/duet-number-input.cjs.entry.js +1 -1
  41. package/lib/cjs/duet-page-heading.cjs.entry.js +1 -1
  42. package/lib/cjs/duet-pagination_2.cjs.entry.js +1 -1
  43. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  44. package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
  45. package/lib/cjs/duet-range-slider.cjs.entry.js +1 -1
  46. package/lib/cjs/duet-scrollable_3.cjs.entry.js +1 -1
  47. package/lib/cjs/duet-section-layout.cjs.entry.js +1 -1
  48. package/lib/cjs/duet-select.cjs.entry.js +1 -1
  49. package/lib/cjs/duet-slideout-lang.cjs.entry.js +1 -1
  50. package/lib/cjs/duet-slideout-link.cjs.entry.js +1 -1
  51. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +1 -1
  52. package/lib/cjs/duet-slideout-panel.cjs.entry.js +2 -2
  53. package/lib/cjs/duet-slideout.cjs.entry.js +2 -2
  54. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  55. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +1 -1
  56. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +1 -1
  57. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +1 -1
  58. package/lib/cjs/duet-submenu-bar.cjs.entry.js +1 -1
  59. package/lib/cjs/duet-textarea.cjs.entry.js +1 -1
  60. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  61. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +1 -1
  62. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +1 -1
  63. package/lib/cjs/duet-toolbar-link.cjs.entry.js +1 -1
  64. package/lib/cjs/duet-toolbar.cjs.entry.js +1 -1
  65. package/lib/cjs/duet-tooltip.cjs.entry.js +1220 -48
  66. package/lib/cjs/duet-tray.cjs.entry.js +1 -1
  67. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  68. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  69. package/lib/cjs/duet.cjs.js +2 -2
  70. package/lib/cjs/{focus-utils-de2e491b.js → focus-utils-8852d70c.js} +1 -1
  71. package/lib/cjs/{index-978ec5b0.js → index-8baedc34.js} +1 -1
  72. package/lib/cjs/loader.cjs.js +2 -2
  73. package/lib/collection/components/duet-callout/duet-callout.js +4 -1
  74. package/lib/collection/components/duet-choice/duet-choice.js +3 -1
  75. package/lib/collection/components/duet-hero/duet-hero.css +10 -0
  76. package/lib/collection/components/duet-hero/duet-hero.js +3 -1
  77. package/lib/collection/components/duet-tooltip/duet-tooltip.css +39 -106
  78. package/lib/collection/components/duet-tooltip/duet-tooltip.js +53 -49
  79. package/lib/collection/components/duet-upload/duet-upload.js +3 -3
  80. package/lib/collection/components/duet-upload/upload-item.js +8 -2
  81. package/lib/dist-custom-elements/duet-action-button.js +1 -1
  82. package/lib/dist-custom-elements/duet-alert.js +1 -1
  83. package/lib/dist-custom-elements/duet-badge.js +1 -1
  84. package/lib/dist-custom-elements/duet-breadcrumb.js +2 -2
  85. package/lib/dist-custom-elements/duet-breadcrumbs.js +2 -2
  86. package/lib/dist-custom-elements/duet-button.js +1 -1
  87. package/lib/dist-custom-elements/duet-callout.js +7 -4
  88. package/lib/dist-custom-elements/duet-caption.js +1 -1
  89. package/lib/dist-custom-elements/duet-card.js +3 -3
  90. package/lib/dist-custom-elements/duet-checkbox.js +1 -1
  91. package/lib/dist-custom-elements/duet-checkmark.js +1 -1
  92. package/lib/dist-custom-elements/duet-choice-group.js +6 -6
  93. package/lib/dist-custom-elements/duet-choice.js +8 -6
  94. package/lib/dist-custom-elements/duet-collapsible.js +3 -3
  95. package/lib/dist-custom-elements/duet-combobox.js +2 -2
  96. package/lib/dist-custom-elements/duet-contact-card.js +8 -8
  97. package/lib/dist-custom-elements/duet-cookie-consent.js +6 -6
  98. package/lib/dist-custom-elements/duet-date-picker.js +10 -10
  99. package/lib/dist-custom-elements/duet-divider.js +1 -1
  100. package/lib/dist-custom-elements/duet-editable-table.js +7 -7
  101. package/lib/dist-custom-elements/duet-empty-state.js +1 -1
  102. package/lib/dist-custom-elements/duet-fieldset.js +1 -1
  103. package/lib/dist-custom-elements/duet-footer.js +4 -4
  104. package/lib/dist-custom-elements/duet-grid-item.js +1 -1
  105. package/lib/dist-custom-elements/duet-grid.js +1 -1
  106. package/lib/dist-custom-elements/duet-header.js +9 -9
  107. package/lib/dist-custom-elements/duet-heading.js +1 -1
  108. package/lib/dist-custom-elements/duet-hero.js +12 -11
  109. package/lib/dist-custom-elements/duet-icon.js +1 -1
  110. package/lib/dist-custom-elements/duet-input.js +1 -1
  111. package/lib/dist-custom-elements/duet-label.js +1 -1
  112. package/lib/dist-custom-elements/duet-layout.js +1 -1
  113. package/lib/dist-custom-elements/duet-link.js +1 -1
  114. package/lib/dist-custom-elements/duet-list-item.js +1 -1
  115. package/lib/dist-custom-elements/duet-list.js +1 -1
  116. package/lib/dist-custom-elements/duet-logo.js +1 -1
  117. package/lib/dist-custom-elements/duet-menu-bar-button.js +3 -3
  118. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +2 -2
  119. package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +3 -3
  120. package/lib/dist-custom-elements/duet-menu-bar-link.js +3 -3
  121. package/lib/dist-custom-elements/duet-menu-bar.js +3 -3
  122. package/lib/dist-custom-elements/duet-modal.js +7 -7
  123. package/lib/dist-custom-elements/duet-multiselect.js +8 -8
  124. package/lib/dist-custom-elements/duet-nav.js +1 -1
  125. package/lib/dist-custom-elements/duet-notification-drawer.js +4 -4
  126. package/lib/dist-custom-elements/duet-notification.js +2 -2
  127. package/lib/dist-custom-elements/duet-number-input.js +9 -9
  128. package/lib/dist-custom-elements/duet-page-heading.js +2 -2
  129. package/lib/dist-custom-elements/duet-pagination.js +7 -7
  130. package/lib/dist-custom-elements/duet-paragraph.js +1 -1
  131. package/lib/dist-custom-elements/duet-progress.js +1 -1
  132. package/lib/dist-custom-elements/duet-radio-group.js +6 -6
  133. package/lib/dist-custom-elements/duet-radio.js +1 -1
  134. package/lib/dist-custom-elements/duet-range-slider.js +2 -2
  135. package/lib/dist-custom-elements/duet-range-stepper.js +4 -4
  136. package/lib/dist-custom-elements/duet-scrollable.js +1 -1
  137. package/lib/dist-custom-elements/duet-section-layout.js +1 -1
  138. package/lib/dist-custom-elements/duet-select.js +1 -1
  139. package/lib/dist-custom-elements/duet-slideout-lang.js +2 -2
  140. package/lib/dist-custom-elements/duet-slideout-link.js +2 -2
  141. package/lib/dist-custom-elements/duet-slideout-panel-dropdown.js +2 -2
  142. package/lib/dist-custom-elements/duet-slideout-panel.js +2 -2
  143. package/lib/dist-custom-elements/duet-slideout.js +2 -2
  144. package/lib/dist-custom-elements/duet-spacer.js +1 -1
  145. package/lib/dist-custom-elements/duet-spinner.js +1 -1
  146. package/lib/dist-custom-elements/duet-step.js +4 -4
  147. package/lib/dist-custom-elements/duet-stepper.js +2 -2
  148. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +2 -2
  149. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +3 -3
  150. package/lib/dist-custom-elements/duet-submenu-bar-link.js +3 -3
  151. package/lib/dist-custom-elements/duet-submenu-bar.js +3 -3
  152. package/lib/dist-custom-elements/duet-tab-group.js +9 -9
  153. package/lib/dist-custom-elements/duet-tab.js +1 -1
  154. package/lib/dist-custom-elements/duet-table.js +1 -1
  155. package/lib/dist-custom-elements/duet-textarea.js +8 -8
  156. package/lib/dist-custom-elements/duet-toggle.js +2 -2
  157. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +2 -2
  158. package/lib/dist-custom-elements/duet-toolbar-dropdown.js +2 -2
  159. package/lib/dist-custom-elements/duet-toolbar-link.js +2 -2
  160. package/lib/dist-custom-elements/duet-toolbar.js +1 -1
  161. package/lib/dist-custom-elements/duet-tooltip.js +1 -1
  162. package/lib/dist-custom-elements/duet-tray.js +3 -3
  163. package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
  164. package/lib/dist-custom-elements/duet-upload.js +28 -20
  165. package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
  166. package/lib/dist-custom-elements/index.js +1 -1
  167. package/lib/dist-custom-elements/p-1635a5ff.js +1446 -0
  168. package/lib/dist-custom-elements/{p-6f0966d2.js → p-1d207f70.js} +4 -4
  169. package/lib/dist-custom-elements/{p-0a6a8f11.js → p-2a351223.js} +1 -1
  170. package/lib/dist-custom-elements/{p-f9c288b5.js → p-369a9e6b.js} +3 -3
  171. package/lib/dist-custom-elements/{p-9ed66812.js → p-3d6100be.js} +2 -2
  172. package/lib/dist-custom-elements/{p-4d0f9f83.js → p-4d20fcd1.js} +1 -1
  173. package/lib/dist-custom-elements/{p-70ef0e9d.js → p-5119f1dc.js} +5 -5
  174. package/lib/dist-custom-elements/{p-5962ecc8.js → p-5183d2cf.js} +1 -1
  175. package/lib/dist-custom-elements/{p-a2fa664a.js → p-53c27e8e.js} +1 -1
  176. package/lib/dist-custom-elements/{p-087e9427.js → p-62683175.js} +1 -1
  177. package/lib/dist-custom-elements/{p-d8ca2c64.js → p-649043a8.js} +2 -2
  178. package/lib/dist-custom-elements/{p-f5d77e8e.js → p-67365843.js} +1 -1
  179. package/lib/dist-custom-elements/{p-a78d941c.js → p-68be9a91.js} +1 -1
  180. package/lib/dist-custom-elements/{p-c4689e7b.js → p-783a8425.js} +2 -2
  181. package/lib/dist-custom-elements/{p-5c9bf9ba.js → p-7a905f45.js} +3 -3
  182. package/lib/dist-custom-elements/{p-0b141ef0.js → p-7e395433.js} +1 -1
  183. package/lib/dist-custom-elements/{p-57bb44bf.js → p-87df78c6.js} +1 -1
  184. package/lib/dist-custom-elements/{p-c638adb2.js → p-8bad78a6.js} +1 -1
  185. package/lib/dist-custom-elements/{p-4a060f56.js → p-93fab31d.js} +1 -1
  186. package/lib/dist-custom-elements/{p-8160f98e.js → p-99687f8f.js} +6 -6
  187. package/lib/dist-custom-elements/{p-cbc12626.js → p-9d1b018a.js} +1 -1
  188. package/lib/dist-custom-elements/{p-a3ba0ed5.js → p-c243ec01.js} +1 -1
  189. package/lib/{esm/tokens-0963dc8b.js → dist-custom-elements/p-cb9787ec.js} +1 -1
  190. package/lib/dist-custom-elements/{p-f5252ae4.js → p-cbb67f4e.js} +1 -1
  191. package/lib/dist-custom-elements/{p-75f47a29.js → p-d95944c8.js} +1 -1
  192. package/lib/dist-custom-elements/{p-a27921ba.js → p-e080ccaa.js} +1 -1
  193. package/lib/dist-custom-elements/{p-49ef7e25.js → p-e2a3c6fa.js} +2 -2
  194. package/lib/dist-custom-elements/{p-064985f6.js → p-e4e40736.js} +2 -2
  195. package/lib/dist-custom-elements/{p-a1863bda.js → p-efa5255b.js} +1 -1
  196. package/lib/dist-custom-elements/{p-db20025e.js → p-f0e99128.js} +8 -8
  197. package/lib/dist-custom-elements/{p-b5a87909.js → p-f2d8763d.js} +2 -2
  198. package/lib/dist-custom-elements/{p-d54ecc52.js → p-f83c1df9.js} +1 -1
  199. package/lib/duet/duet.esm.js +1 -1
  200. package/lib/duet/duet.js +1 -1
  201. package/lib/duet/p-01d38ac9.entry.js +4 -0
  202. package/lib/duet/{p-7ecff545.system.entry.js → p-029f96ec.system.entry.js} +1 -1
  203. package/lib/duet/{p-0c1051da.entry.js → p-03bd5373.entry.js} +1 -1
  204. package/lib/duet/{p-4c812d78.system.entry.js → p-04da22d7.system.entry.js} +1 -1
  205. package/lib/duet/{p-b154ecd8.system.entry.js → p-07d0ed0a.system.entry.js} +1 -1
  206. package/lib/duet/{p-b8705a85.entry.js → p-08693a37.entry.js} +1 -1
  207. package/lib/duet/{p-11749645.system.entry.js → p-097da893.system.entry.js} +1 -1
  208. package/lib/duet/{p-50ce994c.system.entry.js → p-09d4bac7.system.entry.js} +1 -1
  209. package/lib/duet/{p-9c483f1d.system.entry.js → p-0a03a862.system.entry.js} +1 -1
  210. package/lib/duet/{p-0626d8a9.entry.js → p-0a6ff475.entry.js} +1 -1
  211. package/lib/duet/{p-26f3b159.system.entry.js → p-0b752687.system.entry.js} +1 -1
  212. package/lib/duet/{p-0a317f12.entry.js → p-0cdc880e.entry.js} +1 -1
  213. package/lib/duet/{p-6e5abb84.system.entry.js → p-0e165a4e.system.entry.js} +1 -1
  214. package/lib/duet/{p-da5583ea.entry.js → p-0f80e2fc.entry.js} +1 -1
  215. package/lib/duet/{p-f6e2e71a.system.entry.js → p-0fc1b439.system.entry.js} +1 -1
  216. package/lib/duet/{p-49eef496.system.entry.js → p-1028e393.system.entry.js} +1 -1
  217. package/lib/duet/{p-940f11ad.system.entry.js → p-106abf71.system.entry.js} +1 -1
  218. package/lib/duet/{p-67176e9e.entry.js → p-12afe002.entry.js} +1 -1
  219. package/lib/duet/{p-5707ba42.system.entry.js → p-1396c277.system.entry.js} +1 -1
  220. package/lib/duet/p-151892ff.system.entry.js +4 -0
  221. package/lib/duet/{p-830be23d.system.entry.js → p-1677ce5c.system.entry.js} +1 -1
  222. package/lib/duet/{p-336c0409.system.entry.js → p-1a0b0fe9.system.entry.js} +1 -1
  223. package/lib/duet/{p-44268138.system.js → p-1c0453e0.system.js} +1 -1
  224. package/lib/duet/{p-5da36d9e.entry.js → p-1c0a39db.entry.js} +1 -1
  225. package/lib/duet/{p-ca405201.entry.js → p-2125b071.entry.js} +1 -1
  226. package/lib/duet/{p-a3b22a18.entry.js → p-2879b97d.entry.js} +1 -1
  227. package/lib/duet/{p-7a7ef869.entry.js → p-29b9e99e.entry.js} +1 -1
  228. package/lib/duet/{p-1eece5bf.system.entry.js → p-2bc4d34e.system.entry.js} +1 -1
  229. package/lib/duet/p-2c68ee2d.system.entry.js +4 -0
  230. package/lib/duet/{p-e6d1e0be.system.entry.js → p-2d5be93c.system.entry.js} +1 -1
  231. package/lib/duet/{p-4058cee8.entry.js → p-2d71fa26.entry.js} +1 -1
  232. package/lib/duet/{p-d656d96e.system.entry.js → p-32eecc8d.system.entry.js} +1 -1
  233. package/lib/duet/{p-a03c4dcd.system.entry.js → p-344134e5.system.entry.js} +1 -1
  234. package/lib/duet/{p-c9edd0bb.system.entry.js → p-36bca919.system.entry.js} +1 -1
  235. package/lib/duet/{p-a0876e2e.system.entry.js → p-3b1ff9be.system.entry.js} +1 -1
  236. package/lib/duet/{p-2c31977d.entry.js → p-3c88792b.entry.js} +1 -1
  237. package/lib/duet/{p-13540a69.system.entry.js → p-3d6d2012.system.entry.js} +1 -1
  238. package/lib/duet/{p-728c2f13.entry.js → p-3de9ea90.entry.js} +1 -1
  239. package/lib/duet/{p-482497cd.entry.js → p-3e2c87e6.entry.js} +1 -1
  240. package/lib/duet/{p-50df271c.entry.js → p-3e7b62a4.entry.js} +1 -1
  241. package/lib/duet/{p-653eb7ce.system.entry.js → p-401a454b.system.entry.js} +1 -1
  242. package/lib/duet/{p-aa79548d.system.entry.js → p-41a69e48.system.entry.js} +1 -1
  243. package/lib/duet/{p-3d31b17b.system.entry.js → p-42844e9d.system.entry.js} +1 -1
  244. package/lib/duet/{p-f2f60847.entry.js → p-44f22e6b.entry.js} +1 -1
  245. package/lib/duet/{p-0eb4217a.entry.js → p-458dd158.entry.js} +1 -1
  246. package/lib/duet/{p-c2757db1.entry.js → p-45fe4429.entry.js} +1 -1
  247. package/lib/duet/p-4634f44d.entry.js +4 -0
  248. package/lib/duet/{p-51adf63c.system.entry.js → p-466c4910.system.entry.js} +1 -1
  249. package/lib/duet/{p-475d42a8.system.entry.js → p-48ef2786.system.entry.js} +1 -1
  250. package/lib/duet/{p-bdc400cf.entry.js → p-4a4cbba5.entry.js} +1 -1
  251. package/lib/duet/{p-745645b0.entry.js → p-4c1fb962.entry.js} +1 -1
  252. package/lib/duet/{p-8b148f79.system.entry.js → p-4c7fb05f.system.entry.js} +1 -1
  253. package/lib/duet/{p-636e5f15.entry.js → p-4cb43c38.entry.js} +1 -1
  254. package/lib/duet/p-5074accf.entry.js +4 -0
  255. package/lib/duet/{p-81c05491.system.entry.js → p-5573222d.system.entry.js} +1 -1
  256. package/lib/duet/{p-b672280a.entry.js → p-57a26a2a.entry.js} +1 -1
  257. package/lib/duet/{p-a92d4f59.system.entry.js → p-5c17a74a.system.entry.js} +1 -1
  258. package/lib/duet/{p-c6793076.system.entry.js → p-5d15cd89.system.entry.js} +1 -1
  259. package/lib/duet/{p-d6149423.entry.js → p-5e6542bc.entry.js} +1 -1
  260. package/lib/duet/{p-c42f3a40.system.entry.js → p-5f7a2639.system.entry.js} +1 -1
  261. package/lib/duet/{p-83b776f5.system.entry.js → p-613156e6.system.entry.js} +2 -2
  262. package/lib/duet/{p-da4c713c.system.entry.js → p-62a63d5b.system.entry.js} +1 -1
  263. package/lib/duet/{p-4d0d61a7.entry.js → p-6325ae2d.entry.js} +1 -1
  264. package/lib/duet/p-66fbed51.entry.js +4 -0
  265. package/lib/duet/{p-4ec88753.entry.js → p-675f844b.entry.js} +1 -1
  266. package/lib/duet/{p-e66936a4.system.entry.js → p-68ee9bfa.system.entry.js} +1 -1
  267. package/lib/duet/{p-5b17dfea.system.entry.js → p-6a0f118b.system.entry.js} +1 -1
  268. package/lib/duet/{p-d71ba70b.system.entry.js → p-6ba40ef9.system.entry.js} +1 -1
  269. package/lib/duet/{p-5cfb7c71.entry.js → p-6dc868fd.entry.js} +1 -1
  270. package/lib/duet/{p-ffbb062e.system.entry.js → p-6dcce504.system.entry.js} +1 -1
  271. package/lib/duet/{p-955782ae.entry.js → p-70e49d00.entry.js} +1 -1
  272. package/lib/duet/p-752fb0a0.system.entry.js +4 -0
  273. package/lib/duet/{p-3429690e.entry.js → p-75316086.entry.js} +1 -1
  274. package/lib/duet/p-789a9af4.entry.js +4 -0
  275. package/lib/duet/{p-be4bb297.system.entry.js → p-79dd09a6.system.entry.js} +1 -1
  276. package/lib/duet/{p-825fa6d7.entry.js → p-79eb3572.entry.js} +1 -1
  277. package/lib/duet/{p-1f66cbb6.entry.js → p-7b99f674.entry.js} +1 -1
  278. package/lib/duet/{p-587e1ad0.system.js → p-7bab508c.system.js} +1 -1
  279. package/lib/duet/{p-35664bb6.system.entry.js → p-7cf776fa.system.entry.js} +1 -1
  280. package/lib/duet/{p-46e061d9.entry.js → p-7e3e70df.entry.js} +1 -1
  281. package/lib/duet/{p-02fd20f6.system.entry.js → p-7f94280a.system.entry.js} +1 -1
  282. package/lib/duet/p-7fefe439.entry.js +4 -0
  283. package/lib/duet/{p-49c7c6fb.system.entry.js → p-8349ff2d.system.entry.js} +1 -1
  284. package/lib/duet/{p-fbc7ad71.entry.js → p-853ac360.entry.js} +1 -1
  285. package/lib/duet/{p-9f1699dc.system.entry.js → p-8d5edbbe.system.entry.js} +1 -1
  286. package/lib/duet/{p-c192f269.system.entry.js → p-91be047f.system.entry.js} +1 -1
  287. package/lib/duet/{p-7345aff9.system.entry.js → p-92e94229.system.entry.js} +1 -1
  288. package/lib/duet/{p-0ec6a000.entry.js → p-93a2c807.entry.js} +1 -1
  289. package/lib/duet/{p-ce00f1fd.system.entry.js → p-97528238.system.entry.js} +1 -1
  290. package/lib/duet/{p-0bcdec8b.system.entry.js → p-9791ab1b.system.entry.js} +1 -1
  291. package/lib/duet/{p-d24ebe03.system.entry.js → p-97df072f.system.entry.js} +1 -1
  292. package/lib/duet/{p-b731849c.system.entry.js → p-981f2443.system.entry.js} +1 -1
  293. package/lib/duet/{p-af932bca.system.entry.js → p-98777ba0.system.entry.js} +1 -1
  294. package/lib/duet/{p-e078ba11.entry.js → p-991271a2.entry.js} +1 -1
  295. package/lib/duet/{p-14ab7ebe.system.entry.js → p-9916b7d2.system.entry.js} +1 -1
  296. package/lib/duet/{p-02b08c30.entry.js → p-9c127e8f.entry.js} +1 -1
  297. package/lib/duet/p-9ec19751.entry.js +4 -0
  298. package/lib/duet/p-9f81873c.entry.js +4 -0
  299. package/lib/duet/{p-8ab66620.system.entry.js → p-a042bc85.system.entry.js} +2 -2
  300. package/lib/duet/{p-01dc716d.entry.js → p-a1a8395b.entry.js} +1 -1
  301. package/lib/duet/{p-cafb90c2.entry.js → p-a341e9c3.entry.js} +1 -1
  302. package/lib/duet/{p-a74c2dff.entry.js → p-a653bb02.entry.js} +1 -1
  303. package/lib/duet/{p-474bacf0.entry.js → p-a6aba2d3.entry.js} +1 -1
  304. package/lib/duet/{p-628600fa.entry.js → p-a903a315.entry.js} +1 -1
  305. package/lib/duet/{p-8078b081.system.js → p-a9a7d16c.system.js} +1 -1
  306. package/lib/duet/{p-c03df848.entry.js → p-a9d7b38d.entry.js} +1 -1
  307. package/lib/duet/{p-de62f610.system.entry.js → p-afcfc528.system.entry.js} +1 -1
  308. package/lib/duet/{p-8d98f055.entry.js → p-b4ff5c09.entry.js} +1 -1
  309. package/lib/duet/{p-1522db1d.entry.js → p-b90cdb91.entry.js} +1 -1
  310. package/lib/duet/{p-b651d2d1.entry.js → p-bb97ab92.entry.js} +1 -1
  311. package/lib/duet/{p-c9854b35.system.entry.js → p-bef59086.system.entry.js} +1 -1
  312. package/lib/duet/{p-041b483b.entry.js → p-c39467e4.entry.js} +1 -1
  313. package/lib/duet/{p-e4faf457.entry.js → p-c50233e1.entry.js} +1 -1
  314. package/lib/duet/{p-7000ce85.system.entry.js → p-c504d7cd.system.entry.js} +1 -1
  315. package/lib/duet/{p-f3d588ab.entry.js → p-c56dd6d7.entry.js} +1 -1
  316. package/lib/duet/{p-d9ef6f51.system.entry.js → p-c6a321f1.system.entry.js} +1 -1
  317. package/lib/duet/{p-e65709fc.entry.js → p-c94a423f.entry.js} +1 -1
  318. package/lib/duet/{p-c4d8cad0.js → p-cb9787ec.js} +1 -1
  319. package/lib/duet/{p-cc5a3edc.js → p-cca182be.js} +1 -1
  320. package/lib/duet/{p-cdea33d4.entry.js → p-cff8b0b3.entry.js} +1 -1
  321. package/lib/duet/{p-22c2c6d5.system.entry.js → p-d1b6fd73.system.entry.js} +1 -1
  322. package/lib/duet/p-d3bba23f.entry.js +4 -0
  323. package/lib/duet/{p-23ec6f02.entry.js → p-d4d2569e.entry.js} +1 -1
  324. package/lib/duet/{p-cb9991a5.system.entry.js → p-d6196775.system.entry.js} +1 -1
  325. package/lib/duet/{p-d0857e1f.system.js → p-d7e6a4ed.system.js} +1 -1
  326. package/lib/duet/{p-4b457bad.system.entry.js → p-da04e483.system.entry.js} +1 -1
  327. package/lib/duet/{p-420af35d.system.entry.js → p-dc4b4a04.system.entry.js} +1 -1
  328. package/lib/duet/{p-40b5d6b7.entry.js → p-de82bfee.entry.js} +1 -1
  329. package/lib/duet/{p-9c5001ab.entry.js → p-df7481e8.entry.js} +1 -1
  330. package/lib/duet/{p-9d0b30a0.system.entry.js → p-e057d8c4.system.entry.js} +1 -1
  331. package/lib/duet/{p-d20fb807.entry.js → p-e05c4a5b.entry.js} +1 -1
  332. package/lib/duet/{p-56f913f0.system.entry.js → p-e0848924.system.entry.js} +1 -1
  333. package/lib/duet/{p-332dc9a8.entry.js → p-e5d2b68e.entry.js} +1 -1
  334. package/lib/duet/{p-a57772d2.system.entry.js → p-e65bc05f.system.entry.js} +1 -1
  335. package/lib/duet/{p-1eccf55b.system.entry.js → p-e6f92c08.system.entry.js} +1 -1
  336. package/lib/duet/{p-d82963c2.system.entry.js → p-ed16d00b.system.entry.js} +1 -1
  337. package/lib/duet/p-f5a74f01.js +4 -0
  338. package/lib/duet/p-f5fd8e55.entry.js +4 -0
  339. package/lib/duet/{p-9ebea289.entry.js → p-f691d0b6.entry.js} +1 -1
  340. package/lib/duet/{p-55bdc762.entry.js → p-f7fbc435.entry.js} +1 -1
  341. package/lib/duet/{p-e4f417fe.entry.js → p-f8d91f4b.entry.js} +1 -1
  342. package/lib/esm/duet-action-button.entry.js +1 -1
  343. package/lib/esm/duet-alert.entry.js +1 -1
  344. package/lib/esm/duet-badge.entry.js +1 -1
  345. package/lib/esm/duet-breadcrumb.entry.js +1 -1
  346. package/lib/esm/duet-breadcrumbs.entry.js +1 -1
  347. package/lib/esm/duet-button_2.entry.js +1 -1
  348. package/lib/esm/duet-callout.entry.js +5 -2
  349. package/lib/esm/duet-caption_4.entry.js +1 -1
  350. package/lib/esm/duet-card.entry.js +1 -1
  351. package/lib/esm/duet-checkbox.entry.js +1 -1
  352. package/lib/esm/duet-checkmark.entry.js +1 -1
  353. package/lib/esm/duet-choice_2.entry.js +5 -3
  354. package/lib/esm/duet-collapsible.entry.js +2 -2
  355. package/lib/esm/duet-combobox.entry.js +1 -1
  356. package/lib/esm/duet-contact-card.entry.js +1 -1
  357. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  358. package/lib/esm/duet-date-picker.entry.js +2 -2
  359. package/lib/esm/duet-divider_2.entry.js +1 -1
  360. package/lib/esm/duet-editable-table_3.entry.js +12 -4
  361. package/lib/esm/duet-empty-state.entry.js +1 -1
  362. package/lib/esm/duet-fieldset.entry.js +1 -1
  363. package/lib/esm/duet-footer.entry.js +1 -1
  364. package/lib/esm/duet-grid_2.entry.js +2 -2
  365. package/lib/esm/duet-header_2.entry.js +2 -2
  366. package/lib/esm/duet-hero.entry.js +4 -3
  367. package/lib/esm/duet-icon.entry.js +1 -1
  368. package/lib/esm/duet-input_2.entry.js +1 -1
  369. package/lib/esm/duet-layout.entry.js +1 -1
  370. package/lib/esm/duet-list_2.entry.js +1 -1
  371. package/lib/esm/duet-menu-bar-button.entry.js +2 -2
  372. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +1 -1
  373. package/lib/esm/duet-menu-bar-dropdown.entry.js +2 -2
  374. package/lib/esm/duet-menu-bar-link.entry.js +2 -2
  375. package/lib/esm/duet-menu-bar.entry.js +2 -2
  376. package/lib/esm/duet-modal.entry.js +2 -2
  377. package/lib/esm/duet-multiselect.entry.js +1 -1
  378. package/lib/esm/duet-nav.entry.js +1 -1
  379. package/lib/esm/duet-notification_2.entry.js +1 -1
  380. package/lib/esm/duet-number-input.entry.js +1 -1
  381. package/lib/esm/duet-page-heading.entry.js +1 -1
  382. package/lib/esm/duet-pagination_2.entry.js +1 -1
  383. package/lib/esm/duet-progress.entry.js +1 -1
  384. package/lib/esm/duet-radio_2.entry.js +1 -1
  385. package/lib/esm/duet-range-slider.entry.js +1 -1
  386. package/lib/esm/duet-scrollable_3.entry.js +1 -1
  387. package/lib/esm/duet-section-layout.entry.js +1 -1
  388. package/lib/esm/duet-select.entry.js +1 -1
  389. package/lib/esm/duet-slideout-lang.entry.js +1 -1
  390. package/lib/esm/duet-slideout-link.entry.js +1 -1
  391. package/lib/esm/duet-slideout-panel-dropdown.entry.js +1 -1
  392. package/lib/esm/duet-slideout-panel.entry.js +2 -2
  393. package/lib/esm/duet-slideout.entry.js +2 -2
  394. package/lib/esm/duet-step_2.entry.js +1 -1
  395. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +1 -1
  396. package/lib/esm/duet-submenu-bar-dropdown.entry.js +2 -2
  397. package/lib/esm/duet-submenu-bar-link.entry.js +2 -2
  398. package/lib/esm/duet-submenu-bar.entry.js +2 -2
  399. package/lib/esm/duet-textarea.entry.js +1 -1
  400. package/lib/esm/duet-toggle.entry.js +1 -1
  401. package/lib/esm/duet-toolbar-dropdown-link.entry.js +1 -1
  402. package/lib/esm/duet-toolbar-dropdown.entry.js +1 -1
  403. package/lib/esm/duet-toolbar-link.entry.js +1 -1
  404. package/lib/esm/duet-toolbar.entry.js +1 -1
  405. package/lib/esm/duet-tooltip.entry.js +1220 -48
  406. package/lib/esm/duet-tray.entry.js +1 -1
  407. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  408. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  409. package/lib/esm/duet.js +3 -3
  410. package/lib/esm/{focus-utils-b482bcb1.js → focus-utils-1e6af8c1.js} +1 -1
  411. package/lib/esm/{index-5a68b13e.js → index-77de1d56.js} +1 -1
  412. package/lib/esm/loader.js +3 -3
  413. package/lib/{dist-custom-elements/p-c4d8cad0.js → esm/tokens-20d688dc.js} +1 -1
  414. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  415. package/lib/esm-es5/duet-alert.entry.js +1 -1
  416. package/lib/esm-es5/duet-badge.entry.js +1 -1
  417. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  418. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  419. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  420. package/lib/esm-es5/duet-callout.entry.js +1 -1
  421. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  422. package/lib/esm-es5/duet-card.entry.js +1 -1
  423. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  424. package/lib/esm-es5/duet-checkmark.entry.js +1 -1
  425. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  426. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  427. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  428. package/lib/esm-es5/duet-contact-card.entry.js +1 -1
  429. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  430. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  431. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  432. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  433. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  434. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  435. package/lib/esm-es5/duet-footer.entry.js +1 -1
  436. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  437. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  438. package/lib/esm-es5/duet-hero.entry.js +1 -1
  439. package/lib/esm-es5/duet-icon.entry.js +1 -1
  440. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  441. package/lib/esm-es5/duet-layout.entry.js +1 -1
  442. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  443. package/lib/esm-es5/duet-menu-bar-button.entry.js +1 -1
  444. package/lib/esm-es5/duet-menu-bar-dropdown-link.entry.js +1 -1
  445. package/lib/esm-es5/duet-menu-bar-dropdown.entry.js +1 -1
  446. package/lib/esm-es5/duet-menu-bar-link.entry.js +1 -1
  447. package/lib/esm-es5/duet-menu-bar.entry.js +1 -1
  448. package/lib/esm-es5/duet-modal.entry.js +1 -1
  449. package/lib/esm-es5/duet-multiselect.entry.js +1 -1
  450. package/lib/esm-es5/duet-nav.entry.js +1 -1
  451. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  452. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  453. package/lib/esm-es5/duet-page-heading.entry.js +1 -1
  454. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  455. package/lib/esm-es5/duet-progress.entry.js +1 -1
  456. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  457. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  458. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  459. package/lib/esm-es5/duet-section-layout.entry.js +1 -1
  460. package/lib/esm-es5/duet-select.entry.js +1 -1
  461. package/lib/esm-es5/duet-slideout-lang.entry.js +1 -1
  462. package/lib/esm-es5/duet-slideout-link.entry.js +1 -1
  463. package/lib/esm-es5/duet-slideout-panel-dropdown.entry.js +1 -1
  464. package/lib/esm-es5/duet-slideout-panel.entry.js +1 -1
  465. package/lib/esm-es5/duet-slideout.entry.js +2 -2
  466. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  467. package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +1 -1
  468. package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +1 -1
  469. package/lib/esm-es5/duet-submenu-bar-link.entry.js +1 -1
  470. package/lib/esm-es5/duet-submenu-bar.entry.js +1 -1
  471. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  472. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  473. package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
  474. package/lib/esm-es5/duet-toolbar-dropdown.entry.js +1 -1
  475. package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
  476. package/lib/esm-es5/duet-toolbar.entry.js +1 -1
  477. package/lib/esm-es5/duet-tooltip.entry.js +2 -2
  478. package/lib/esm-es5/duet-tray.entry.js +1 -1
  479. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  480. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  481. package/lib/esm-es5/duet.js +1 -1
  482. package/lib/esm-es5/{focus-utils-b482bcb1.js → focus-utils-1e6af8c1.js} +1 -1
  483. package/lib/esm-es5/{index-5a68b13e.js → index-77de1d56.js} +1 -1
  484. package/lib/esm-es5/loader.js +1 -1
  485. package/lib/esm-es5/{tokens-0963dc8b.js → tokens-20d688dc.js} +1 -1
  486. package/lib/types/components/duet-callout/duet-callout.d.ts +2 -0
  487. package/lib/types/components/duet-hero/duet-hero.d.ts +2 -0
  488. package/lib/types/components/duet-tooltip/duet-tooltip.d.ts +8 -7
  489. package/lib/types/components/duet-upload/duet-upload.d.ts +1 -1
  490. package/lib/types/components.d.ts +2 -2
  491. package/package.json +6 -5
  492. package/lib/dist-custom-elements/p-98c77c8d.js +0 -272
  493. package/lib/duet/p-2b1f8599.system.entry.js +0 -4
  494. package/lib/duet/p-3877d445.entry.js +0 -4
  495. package/lib/duet/p-42e60321.entry.js +0 -4
  496. package/lib/duet/p-4af2f77a.entry.js +0 -4
  497. package/lib/duet/p-60912840.entry.js +0 -4
  498. package/lib/duet/p-624d38a3.system.entry.js +0 -4
  499. package/lib/duet/p-673a6c11.entry.js +0 -4
  500. package/lib/duet/p-793dcfc2.js +0 -4
  501. package/lib/duet/p-95eb41b3.system.entry.js +0 -4
  502. package/lib/duet/p-a7953c81.entry.js +0 -4
  503. package/lib/duet/p-b1ae5c07.entry.js +0 -4
  504. package/lib/duet/p-b89cad4d.entry.js +0 -4
  505. package/lib/duet/p-bf4ceb06.entry.js +0 -4
  506. package/lib/duet/p-d5f65552.entry.js +0 -4
package/hydrate/index.js CHANGED
@@ -7159,6 +7159,7 @@ const duetCalloutCss = "/*!@:host*/.sc-duet-callout-h{box-sizing:border-box;padd
7159
7159
  class DuetCallout {
7160
7160
  constructor(hostRef) {
7161
7161
  registerInstance(this, hostRef);
7162
+ this.hasAuthorSlot = false;
7162
7163
  this.theme = "";
7163
7164
  this.margin = "auto";
7164
7165
  }
@@ -7167,6 +7168,7 @@ class DuetCallout {
7167
7168
  */
7168
7169
  componentWillLoad() {
7169
7170
  inheritGlobalTheme(this);
7171
+ this.hasAuthorSlot = !!this.element.querySelector('[slot="author"]');
7170
7172
  }
7171
7173
  /**
7172
7174
  * render() function
@@ -7181,8 +7183,9 @@ class DuetCallout {
7181
7183
  "duet-callout": true,
7182
7184
  "duet-theme-turva": this.theme === "turva",
7183
7185
  "duet-m-0": this.margin === "none",
7184
- } }, hAsync("figure", { class: "container" }, hAsync("duet-icon", { class: "callout-icon", shape: "brand-rotated", background: "primary-lighter", "background-opacity": "0.75", "background-rotation": this.theme === "turva" ? "0" : "7", color: "secondary", icon: icon, size: "auto", margin: "none" }), hAsync("blockquote", null, hAsync("duet-paragraph", { variation: "intro", weight: "semi-bold", margin: "none" }, hAsync("slot", null))), hAsync("figcaption", { class: "author" }, hAsync("span", null, "\u2014 "), hAsync("span", null, hAsync("slot", { name: "author" })))))));
7186
+ } }, hAsync("figure", { class: "container" }, hAsync("duet-icon", { class: "callout-icon", shape: "brand-rotated", background: "primary-lighter", "background-opacity": "0.75", "background-rotation": this.theme === "turva" ? "0" : "7", color: "secondary", icon: icon, size: "auto", margin: "none", theme: this.theme }), hAsync("blockquote", null, hAsync("duet-paragraph", { variation: "intro", weight: "semi-bold", margin: "none", theme: this.theme }, hAsync("slot", null))), this.hasAuthorSlot && (hAsync("figcaption", { class: "author" }, hAsync("span", null, "\u2014 "), hAsync("span", null, hAsync("slot", { name: "author" }))))))));
7185
7187
  }
7188
+ get element() { return getElement(this); }
7186
7189
  static get style() { return duetCalloutCss; }
7187
7190
  static get cmpMeta() { return {
7188
7191
  "$flags$": 9,
@@ -7785,6 +7788,8 @@ class DuetChoice {
7785
7788
  * Always the last one in the class.
7786
7789
  */
7787
7790
  render() {
7791
+ const choiceGroup = this.element.closest("duet-choice-group");
7792
+ const choiceGroupLabel = choiceGroup ? choiceGroup.label : undefined;
7788
7793
  const identifier = this.identifier || this.choiceId;
7789
7794
  return (hAsync(Host, { class: {
7790
7795
  horizontal: this.groupDirection === "horizontal" && !this.groupResponsive,
@@ -7803,7 +7808,7 @@ class DuetChoice {
7803
7808
  info: this.isInfoOpen,
7804
7809
  collapsible: this.collapsible,
7805
7810
  "duet-p-0": this.padding === "none",
7806
- } }, hAsync("input", { class: "duet-choice-input", type: this.type, onFocus: this.onFocus, onBlur: this.onBlur, onChange: this.onChange, disabled: this.disabled || this.groupDisabled, required: this.required, id: identifier, name: this.name, value: this.value, checked: this.checked, "aria-controls": this.accessibleControls, "aria-activedescendant": this.accessibleActiveDescendant, "aria-labelledby": this.accessibleLabelledBy, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-owns": this.accessibleOwns, "aria-describedby": this.getAriaDescribedby(), onKeyDown: this.handleKeyDown, ref: input => (this.nativeInput = input) }), hAsync("label", { htmlFor: identifier, class: { "duet-choice-label": true, "no-hover": this.isHovering, "has-before-text": this.hasBeforeText }, onClick: this.onClick }, this.hasBeforeText && hAsync("slot", { name: "before-text" }), this.icon && (hAsync("div", { class: "duet-choice-card-icon" }, hAsync("duet-icon", { margin: "none", size: "small", name: this.icon, color: "currentColor" }))), hAsync("div", { class: "duet-choice-card-text" }, hAsync("div", null, this.hasLabel ? hAsync("slot", { name: "label" }) : this.label), this.caption && (hAsync("div", null, hAsync("duet-spacer", { size: "xx-small" }), hAsync("duet-caption", { margin: "none", selected: this.checked }, this.caption))), this.hasAdditional && (hAsync("div", null, hAsync("duet-spacer", { size: "xx-small" }), hAsync("slot", { name: "additional" })))), hAsync("div", null, hAsync("div", { class: { "duet-checkmark-container": true, "duet-checkmark-radio": this.type === "radio" } }, this.checked && hAsync("div", { class: "duet-checkmark" }))))), this.hasInfo && !this.collapsible && (hAsync("button", { ref: button => (this.infoButtonEl = button), id: this.infoButtonId, class: {
7811
+ } }, hAsync("input", { class: "duet-choice-input", type: this.type, onFocus: this.onFocus, onBlur: this.onBlur, onChange: this.onChange, disabled: this.disabled || this.groupDisabled, required: this.required, id: identifier, name: this.name, value: this.value, checked: this.checked, "aria-controls": this.accessibleControls, "aria-activedescendant": this.accessibleActiveDescendant, "aria-labelledby": this.accessibleLabelledBy, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-owns": this.accessibleOwns, "aria-describedby": this.getAriaDescribedby(), onKeyDown: this.handleKeyDown, ref: input => (this.nativeInput = input) }), hAsync("label", { htmlFor: identifier, class: { "duet-choice-label": true, "no-hover": this.isHovering, "has-before-text": this.hasBeforeText }, onClick: this.onClick }, this.hasBeforeText && hAsync("slot", { name: "before-text" }), this.icon && (hAsync("div", { class: "duet-choice-card-icon" }, hAsync("duet-icon", { margin: "none", size: "small", name: this.icon, color: "currentColor" }))), hAsync("div", { class: "duet-choice-card-text" }, choiceGroupLabel && hAsync("duet-visually-hidden", null, choiceGroupLabel, ", "), hAsync("div", null, this.hasLabel ? hAsync("slot", { name: "label" }) : this.label), this.caption && (hAsync("div", null, hAsync("duet-spacer", { size: "xx-small" }), hAsync("duet-caption", { margin: "none", selected: this.checked }, this.caption))), this.hasAdditional && (hAsync("div", null, hAsync("duet-spacer", { size: "xx-small" }), hAsync("slot", { name: "additional" })))), hAsync("div", null, hAsync("div", { class: { "duet-checkmark-container": true, "duet-checkmark-radio": this.type === "radio" } }, this.checked && hAsync("div", { class: "duet-checkmark" }))))), this.hasInfo && !this.collapsible && (hAsync("button", { ref: button => (this.infoButtonEl = button), id: this.infoButtonId, class: {
7807
7812
  "duet-choice-info-toggle": true,
7808
7813
  "duet-theme-turva": this.theme === "turva",
7809
7814
  }, onMouseEnter: this.onMouseEnter, onMouseLeave: this.onMouseLeave, onClick: this.toggleInfo, disabled: this.disabled || this.groupDisabled, "aria-expanded": this.isInfoOpen ? "true" : "false", "aria-label": `${this.infoLabel} ${this.label}`, "aria-controls": this.expandId, "aria-flowto": this.expandId, tabindex: this.type === "radio" && !this.checked ? "-1" : "0", type: "button" }, hAsync("duet-visually-hidden", { "aria-hidden": !this.isBlurred ? "true" : "false" }, this.accessibleLabelInfoButton), hAsync("div", { class: "duet-choice-info-icon" }, hAsync("duet-icon", { icon: messagingInfo.svg, margin: "none", size: "small", color: "currentColor" }))))), this.collapsible || this.hasInfo ? (hAsync("div", { class: this.getClassNames(), id: this.expandId }, hAsync("span", { class: {
@@ -11540,7 +11545,7 @@ class DuetHeading {
11540
11545
  }; }
11541
11546
  }
11542
11547
 
11543
- const duetHeroCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-hero,*.sc-duet-hero::after,*.sc-duet-hero::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-hero-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}/*!@.duet-hero*/.duet-hero.sc-duet-hero{position:relative;display:block;width:100%;padding:48px 28px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-style:normal;font-weight:400;line-height:1.5;text-decoration:none;text-shadow:none;text-transform:none;background:rgb(0, 41, 77)}/*!@.duet-hero.duet-p-0*/.duet-hero.duet-p-0.sc-duet-hero{padding:0 !important}/*!@.duet-hero.duet-m-0*/.duet-hero.duet-m-0.sc-duet-hero{margin:0 !important}/*!@.duet-hero.duet-hero-text-center*/.duet-hero.duet-hero-text-center.sc-duet-hero{text-align:center !important}/*!@.duet-hero.duet-hero-light*/.duet-hero.duet-hero-light.sc-duet-hero{padding-bottom:0 !important}@media (min-width: 62em){/*!@.duet-hero.duet-hero-light*/.duet-hero.duet-hero-light.sc-duet-hero{padding-bottom:28px !important}}/*!@.duet-hero.duet-hero-with-image*/.duet-hero.duet-hero-with-image.sc-duet-hero{padding-bottom:20px !important;margin-bottom:-36px}@media (min-width: 48em){/*!@.duet-hero.duet-hero-with-image*/.duet-hero.duet-hero-with-image.sc-duet-hero{padding-bottom:28px !important}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-with-image*/.duet-hero.duet-hero-with-image.sc-duet-hero{padding-bottom:36px !important;margin-bottom:-20px}}/*!@.duet-hero.duet-hero-light, .duet-hero.duet-hero-with-image*/.duet-hero.duet-hero-light.sc-duet-hero,.duet-hero.duet-hero-with-image.sc-duet-hero{color:rgb(0, 41, 77);background-color:rgb(255, 255, 255);background-image:linear-gradient(rgb(243, 249, 252), #f9fcfe)}/*!@.duet-hero.duet-hero-light::before, .duet-hero.duet-hero-with-image::before*/.duet-hero.duet-hero-light.sc-duet-hero::before,.duet-hero.duet-hero-with-image.sc-duet-hero::before{position:absolute;top:100%;left:0;z-index:-1;width:100%;height:400px;content:\"\";background-image:linear-gradient(#f9fcfe, rgb(255, 255, 255))}/*!@.duet-hero.duet-hero-light.duet-theme-turva, .duet-hero.duet-hero-with-image.duet-theme-turva*/.duet-hero.duet-hero-light.duet-theme-turva.sc-duet-hero,.duet-hero.duet-hero-with-image.duet-theme-turva.sc-duet-hero{color:rgb(23, 28, 58);background-image:linear-gradient(rgb(245, 245, 247), #fafafb)}/*!@.duet-hero.duet-hero-light.duet-theme-turva::before, .duet-hero.duet-hero-with-image.duet-theme-turva::before*/.duet-hero.duet-hero-light.duet-theme-turva.sc-duet-hero::before,.duet-hero.duet-hero-with-image.duet-theme-turva.sc-duet-hero::before{background-image:linear-gradient(#fafafb, rgb(255, 255, 255))}/*!@.duet-hero.duet-hero-gray*/.duet-hero.duet-hero-gray.sc-duet-hero{color:rgb(0, 41, 77);background:rgb(245, 248, 250)}/*!@.duet-hero.duet-hero-gray.duet-theme-turva*/.duet-hero.duet-hero-gray.duet-theme-turva.sc-duet-hero{background:rgb(245, 245, 247)}@media (min-width: 62em){/*!@.duet-hero.duet-hero-gray .duet-hero-text*/.duet-hero.duet-hero-gray.sc-duet-hero .duet-hero-text.sc-duet-hero{display:inline-block;vertical-align:top}/*!@.duet-hero.duet-hero-gray .duet-hero-icon + .duet-hero-text*/.duet-hero.duet-hero-gray.sc-duet-hero .duet-hero-icon.sc-duet-hero+.duet-hero-text.sc-duet-hero{margin-left:28px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-gray-with-actions*/.duet-hero.duet-hero-gray-with-actions.sc-duet-hero{padding-bottom:65.4545454545px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-gray-with-back*/.duet-hero.duet-hero-gray-with-back.sc-duet-hero{padding-top:72px}}/*!@.duet-hero.duet-hero-campaign, .duet-hero.duet-hero-section*/.duet-hero.duet-hero-campaign.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero{padding:0 0 48px;margin:0;background:none}/*!@.duet-hero.duet-hero-campaign .background-area, .duet-hero.duet-hero-section .background-area*/.duet-hero.duet-hero-campaign.sc-duet-hero .background-area.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background-area.sc-duet-hero{height:1px;margin-bottom:-1px}/*!@.duet-hero.duet-hero-campaign .background-container, .duet-hero.duet-hero-section .background-container*/.duet-hero.duet-hero-campaign.sc-duet-hero .background-container.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background-container.sc-duet-hero{position:absolute;right:0;left:0;display:grid;align-items:flex-start;justify-content:center;overflow:hidden}/*!@.duet-hero.duet-hero-campaign .background, .duet-hero.duet-hero-section .background*/.duet-hero.duet-hero-campaign.sc-duet-hero .background.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero{display:flex;align-items:flex-start;justify-content:center;height:220px;margin:0 auto}/*!@.duet-hero.duet-hero-campaign .background img, .duet-hero.duet-hero-section .background img*/.duet-hero.duet-hero-campaign.sc-duet-hero .background.sc-duet-hero img.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero img.sc-duet-hero{height:100%}@media (min-width: 1440px){/*!@.duet-hero.duet-hero-campaign .background img, .duet-hero.duet-hero-section .background img*/.duet-hero.duet-hero-campaign.sc-duet-hero .background.sc-duet-hero img.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero img.sc-duet-hero{width:100%;height:auto}}@media (min-width: 36em){/*!@.duet-hero.duet-hero-campaign .background, .duet-hero.duet-hero-section .background*/.duet-hero.duet-hero-campaign.sc-duet-hero .background.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero{height:300px}}@media (min-width: 48em){/*!@.duet-hero.duet-hero-campaign .background, .duet-hero.duet-hero-section .background*/.duet-hero.duet-hero-campaign.sc-duet-hero .background.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero{height:450px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-campaign .background, .duet-hero.duet-hero-section .background*/.duet-hero.duet-hero-campaign.sc-duet-hero .background.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero{height:500px}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-campaign .background, .duet-hero.duet-hero-section .background*/.duet-hero.duet-hero-campaign.sc-duet-hero .background.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero{height:580px}}@media (min-width: 1600px){/*!@.duet-hero.duet-hero-campaign .background, .duet-hero.duet-hero-section .background*/.duet-hero.duet-hero-campaign.sc-duet-hero .background.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero{width:1600px;overflow:hidden}}/*!@.duet-hero.duet-hero-campaign .background .brand-container, .duet-hero.duet-hero-section .background .brand-container*/.duet-hero.duet-hero-campaign.sc-duet-hero .background.sc-duet-hero .brand-container.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero .brand-container.sc-duet-hero{position:relative;width:100%;height:100%;min-height:220px;overflow:hidden}/*!@.duet-hero.duet-hero-campaign .background .brand, .duet-hero.duet-hero-section .background .brand*/.duet-hero.duet-hero-campaign.sc-duet-hero .background.sc-duet-hero .brand.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero .brand.sc-duet-hero{position:absolute;width:100%;height:220px;background-repeat:no-repeat;background-position:center center;background-size:cover}@media (min-width: 36em){/*!@.duet-hero.duet-hero-campaign .background .brand, .duet-hero.duet-hero-section .background .brand*/.duet-hero.duet-hero-campaign.sc-duet-hero .background.sc-duet-hero .brand.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero .brand.sc-duet-hero{left:-200px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-campaign .background .brand, .duet-hero.duet-hero-section .background .brand*/.duet-hero.duet-hero-campaign.sc-duet-hero .background.sc-duet-hero .brand.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero .brand.sc-duet-hero{left:auto;height:1100px;background-position:140% -200%}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-campaign .background .brand, .duet-hero.duet-hero-section .background .brand*/.duet-hero.duet-hero-campaign.sc-duet-hero .background.sc-duet-hero .brand.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero .brand.sc-duet-hero{background-position:right -200%}}/*!@.duet-hero.duet-hero-campaign .brand-shape, .duet-hero.duet-hero-section .brand-shape*/.duet-hero.duet-hero-campaign.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .brand-shape.sc-duet-hero{position:absolute;top:143px;right:0;left:-30px;width:340px;height:340px;margin-right:auto;margin-left:auto;background:rgb(255, 255, 255);border-radius:20%;mix-blend-mode:normal;transform:rotate(8deg)}@media (min-width: 22.5em){/*!@.duet-hero.duet-hero-campaign .brand-shape, .duet-hero.duet-hero-section .brand-shape*/.duet-hero.duet-hero-campaign.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .brand-shape.sc-duet-hero{top:160px;width:450px;height:450px}}@media (min-width: 36em){/*!@.duet-hero.duet-hero-campaign .brand-shape, .duet-hero.duet-hero-section .brand-shape*/.duet-hero.duet-hero-campaign.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .brand-shape.sc-duet-hero{top:215px;left:-50px;width:550px;height:550px}}@media (min-width: 48em){/*!@.duet-hero.duet-hero-campaign .brand-shape, .duet-hero.duet-hero-section .brand-shape*/.duet-hero.duet-hero-campaign.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .brand-shape.sc-duet-hero{top:250px;left:0;width:712.18px;height:712.18px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-campaign .brand-shape, .duet-hero.duet-hero-section .brand-shape*/.duet-hero.duet-hero-campaign.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .brand-shape.sc-duet-hero{top:240px}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-campaign .brand-shape, .duet-hero.duet-hero-section .brand-shape*/.duet-hero.duet-hero-campaign.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .brand-shape.sc-duet-hero{top:280px}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-campaign .brand-shape, .duet-hero.duet-hero-section .brand-shape*/.duet-hero.duet-hero-campaign.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .brand-shape.sc-duet-hero{top:310px}}/*!@.duet-hero.duet-hero-campaign .duet-hero-text, .duet-hero.duet-hero-section .duet-hero-text*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero{width:100%}/*!@.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-heading::part(duet-heading), .duet-hero.duet-hero-section .duet-hero-text .duet-hero-heading::part(duet-heading)*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-heading.sc-duet-hero::part(duet-heading),.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-heading.sc-duet-hero::part(duet-heading){font-size:36px}@media (min-width: 36em){/*!@.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-heading::part(duet-heading), .duet-hero.duet-hero-section .duet-hero-text .duet-hero-heading::part(duet-heading)*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-heading.sc-duet-hero::part(duet-heading),.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-heading.sc-duet-hero::part(duet-heading){font-size:48px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-heading::part(duet-heading), .duet-hero.duet-hero-section .duet-hero-text .duet-hero-heading::part(duet-heading)*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-heading.sc-duet-hero::part(duet-heading),.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-heading.sc-duet-hero::part(duet-heading){font-size:64px}}/*!@.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-subheading,\n.duet-hero.duet-hero-campaign .duet-hero-text duet-paragraph, .duet-hero.duet-hero-section .duet-hero-text .duet-hero-subheading,\n.duet-hero.duet-hero-section .duet-hero-text duet-paragraph*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-subheading.sc-duet-hero,.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero duet-paragraph.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-subheading.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero duet-paragraph.sc-duet-hero{margin:0 auto}@media (min-width: 22.5em){/*!@.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-subheading,\n .duet-hero.duet-hero-campaign .duet-hero-text duet-paragraph, .duet-hero.duet-hero-section .duet-hero-text .duet-hero-subheading,\n .duet-hero.duet-hero-section .duet-hero-text duet-paragraph*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-subheading.sc-duet-hero,.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero duet-paragraph.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-subheading.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero duet-paragraph.sc-duet-hero{width:90%}}@media (min-width: 25em){/*!@.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-subheading,\n .duet-hero.duet-hero-campaign .duet-hero-text duet-paragraph, .duet-hero.duet-hero-section .duet-hero-text .duet-hero-subheading,\n .duet-hero.duet-hero-section .duet-hero-text duet-paragraph*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-subheading.sc-duet-hero,.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero duet-paragraph.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-subheading.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero duet-paragraph.sc-duet-hero{width:80%}}@media (min-width: 30em){/*!@.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-subheading,\n .duet-hero.duet-hero-campaign .duet-hero-text duet-paragraph, .duet-hero.duet-hero-section .duet-hero-text .duet-hero-subheading,\n .duet-hero.duet-hero-section .duet-hero-text duet-paragraph*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-subheading.sc-duet-hero,.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero duet-paragraph.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-subheading.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero duet-paragraph.sc-duet-hero{width:70%}}@media (min-width: 36em){/*!@.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-subheading,\n .duet-hero.duet-hero-campaign .duet-hero-text duet-paragraph, .duet-hero.duet-hero-section .duet-hero-text .duet-hero-subheading,\n .duet-hero.duet-hero-section .duet-hero-text duet-paragraph*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-subheading.sc-duet-hero,.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero duet-paragraph.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-subheading.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero duet-paragraph.sc-duet-hero{width:70%}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-subheading,\n .duet-hero.duet-hero-campaign .duet-hero-text duet-paragraph, .duet-hero.duet-hero-section .duet-hero-text .duet-hero-subheading,\n .duet-hero.duet-hero-section .duet-hero-text duet-paragraph*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-subheading.sc-duet-hero,.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero duet-paragraph.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-subheading.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero duet-paragraph.sc-duet-hero{width:52%}}/*!@.duet-hero.duet-hero-campaign .duet-hero-heading, .duet-hero.duet-hero-section .duet-hero-heading*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-heading.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-heading.sc-duet-hero{display:flex;align-items:center;height:6rem;padding:0 1rem;margin:1rem 0 4.5rem}@media (min-width: 22.5em){/*!@.duet-hero.duet-hero-campaign .duet-hero-heading, .duet-hero.duet-hero-section .duet-hero-heading*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-heading.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin:2rem 0 4rem}}@media (min-width: 36em){/*!@.duet-hero.duet-hero-campaign .duet-hero-heading, .duet-hero.duet-hero-section .duet-hero-heading*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-heading.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin:3rem 0 8rem}}@media (min-width: 48em){/*!@.duet-hero.duet-hero-campaign .duet-hero-heading, .duet-hero.duet-hero-section .duet-hero-heading*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-heading.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin:4rem 0 10rem}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-campaign .duet-hero-heading, .duet-hero.duet-hero-section .duet-hero-heading*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-heading.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin:5rem 0 10rem}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-campaign .duet-hero-heading, .duet-hero.duet-hero-section .duet-hero-heading*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-heading.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin:6rem 0 10rem}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-campaign .duet-hero-heading, .duet-hero.duet-hero-section .duet-hero-heading*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-heading.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin:8rem 0 11rem}}/*!@.duet-hero.duet-hero-campaign .duet-hero-wrapper.fluid, .duet-hero.duet-hero-campaign .duet-hero-wrapper.narrow, .duet-hero.duet-hero-section .duet-hero-wrapper.fluid, .duet-hero.duet-hero-section .duet-hero-wrapper.narrow*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-wrapper.fluid.sc-duet-hero,.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-wrapper.narrow.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-wrapper.fluid.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-wrapper.narrow.sc-duet-hero{padding:0 16px}/*!@.duet-hero.duet-hero-campaign.duet-theme-turva, .duet-hero.duet-hero-section.duet-theme-turva*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";background:none}/*!@.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape, .duet-hero.duet-hero-section.duet-theme-turva .brand-shape*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero{top:125px;left:-10px;width:350px;height:350px;background:rgb(255, 255, 255);transform:none;-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");-webkit-mask-repeat:no-repeat;mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");mask-repeat:no-repeat}@media (min-width: 22.5em){/*!@.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape, .duet-hero.duet-hero-section.duet-theme-turva .brand-shape*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero{top:143px;left:-30px;width:450px;height:450px}}@media (min-width: 36em){/*!@.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape, .duet-hero.duet-hero-section.duet-theme-turva .brand-shape*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero{top:180px;left:0;width:550px;height:550px}}@media (min-width: 48em){/*!@.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape, .duet-hero.duet-hero-section.duet-theme-turva .brand-shape*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero{top:220px;width:712.18px;height:712.18px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape, .duet-hero.duet-hero-section.duet-theme-turva .brand-shape*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero{top:230px}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape, .duet-hero.duet-hero-section.duet-theme-turva .brand-shape*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero{top:260px}}@media (min-width: 106.25em){/*!@.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape, .duet-hero.duet-hero-section.duet-theme-turva .brand-shape*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero{top:290px}}@media (min-width: 22.5em){/*!@.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-heading, .duet-hero.duet-hero-section.duet-theme-turva .duet-hero-heading*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero .duet-hero-heading.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin:2rem 0 5rem}}@media (min-width: 36em){/*!@.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-heading, .duet-hero.duet-hero-section.duet-theme-turva .duet-hero-heading*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero .duet-hero-heading.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin:3rem 0 8rem}}@media (min-width: 48em){/*!@.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-heading, .duet-hero.duet-hero-section.duet-theme-turva .duet-hero-heading*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero .duet-hero-heading.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin:4rem 0 10rem}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-heading, .duet-hero.duet-hero-section.duet-theme-turva .duet-hero-heading*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero .duet-hero-heading.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin:5rem 0 10rem}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-heading, .duet-hero.duet-hero-section.duet-theme-turva .duet-hero-heading*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero .duet-hero-heading.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin:6rem 0 12rem}}@media (min-width: 106.25em){/*!@.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-heading, .duet-hero.duet-hero-section.duet-theme-turva .duet-hero-heading*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero .duet-hero-heading.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin:8rem 0 13rem}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-section .background img*/.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero img.sc-duet-hero{width:100%;height:auto}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-section .background*/.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero{width:1400px;height:436px;overflow:hidden}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-section .background*/.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero{width:1536px;height:516px}}@media (min-width: 106.25em){/*!@.duet-hero.duet-hero-section .background*/.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero{width:1536px}}/*!@.duet-hero.duet-hero-product*/.duet-hero.duet-hero-product.sc-duet-hero{position:relative;padding:0 0 48px;padding-top:236px;margin:0;background:rgb(255, 255, 255)}@media (min-width: 48em){/*!@.duet-hero.duet-hero-product*/.duet-hero.duet-hero-product.sc-duet-hero{padding-top:250px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product*/.duet-hero.duet-hero-product.sc-duet-hero{min-height:375px;padding-top:0}/*!@.duet-hero.duet-hero-product.duet-hero-narrow*/.duet-hero.duet-hero-product.duet-hero-narrow.sc-duet-hero{padding-top:200px}}/*!@.duet-hero.duet-hero-product .background-area*/.duet-hero.duet-hero-product.sc-duet-hero .background-area.sc-duet-hero{position:absolute;top:0;width:100%;height:600px;overflow:hidden}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .background-area*/.duet-hero.duet-hero-product.sc-duet-hero .background-area.sc-duet-hero{top:-112px}/*!@.duet-hero.duet-hero-product .background-area.narrow*/.duet-hero.duet-hero-product.sc-duet-hero .background-area.narrow.sc-duet-hero{top:0}}/*!@.duet-hero.duet-hero-product .background-container*/.duet-hero.duet-hero-product.sc-duet-hero .background-container.sc-duet-hero{position:absolute;top:-150px;width:100%;height:600px;overflow:hidden}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .background-container*/.duet-hero.duet-hero-product.sc-duet-hero .background-container.sc-duet-hero{top:-48px}/*!@.duet-hero.duet-hero-product .background-container.narrow*/.duet-hero.duet-hero-product.sc-duet-hero .background-container.narrow.sc-duet-hero{top:-160px}}/*!@.duet-hero.duet-hero-product .background*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero{position:absolute;top:145px;width:100%;overflow:visible}/*!@.duet-hero.duet-hero-product .background .background-mask*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .background-mask.sc-duet-hero{display:none}@media (min-width: 48em){/*!@.duet-hero.duet-hero-product .background*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero{top:130px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .background*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero{top:35px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .background.narrow*/.duet-hero.duet-hero-product.sc-duet-hero .background.narrow.sc-duet-hero{top:140px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .background:not(.narrow)*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero:not(.narrow){position:absolute;right:0;left:0;max-width:1440px;height:100%;margin:0 auto}}/*!@.duet-hero.duet-hero-product .background .brand-shaped-image*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero{position:absolute;top:-160px;right:-15%;z-index:0;width:375px;height:375px;overflow:hidden;border-radius:20%;transform:rotate(7deg)}@media (min-width: 36em){/*!@.duet-hero.duet-hero-product .background .brand-shaped-image*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero{right:15%}}@media (min-width: 48em){/*!@.duet-hero.duet-hero-product .background .brand-shaped-image*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero{top:-210px;width:485px;height:485px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .background .brand-shaped-image:not(.narrow)*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero:not(.narrow){top:-353px;right:-128.15px;width:520px;height:736px}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-product .background .brand-shaped-image:not(.narrow)*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero:not(.narrow){width:736px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .background .brand-shaped-image.narrow*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.narrow.sc-duet-hero{right:30%}}/*!@.duet-hero.duet-hero-product .background .brand-shaped-image .brand-shaped-image-wrapper*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero .brand-shaped-image-wrapper.sc-duet-hero{position:relative;width:100%;height:100%}/*!@.duet-hero.duet-hero-product .background .brand-shaped-image .brand-shaped-image-bg*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero .brand-shaped-image-bg.sc-duet-hero{position:absolute;bottom:0;left:50%;z-index:1;width:600px;height:256px;background-repeat:no-repeat;background-size:100%;transform:rotate(-7deg) translate(-50%, 0)}@media (min-width: 48em){/*!@.duet-hero.duet-hero-product .background .brand-shaped-image .brand-shaped-image-bg*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero .brand-shaped-image-bg.sc-duet-hero{width:600px;height:320px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .background .brand-shaped-image .brand-shaped-image-bg:not(.narrow)*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero .brand-shaped-image-bg.sc-duet-hero:not(.narrow){width:800px;height:470px}}/*!@.duet-hero.duet-hero-product .background .brand-shape*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shape.sc-duet-hero{position:absolute;top:-20px;right:50%;width:240px;height:240px;background:rgb(230, 242, 248);border-radius:25%;mix-blend-mode:normal;transform:rotate(7deg)}@media (min-width: 48em){/*!@.duet-hero.duet-hero-product .background .brand-shape*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shape.sc-duet-hero{top:-60px;width:340px;height:340px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .background .brand-shape:not(.narrow)*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shape.sc-duet-hero:not(.narrow){top:auto;top:79px;right:200px;width:380px;height:380px}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-product .background .brand-shape:not(.narrow)*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shape.sc-duet-hero:not(.narrow){right:414px;width:400px;height:400px}}/*!@.duet-hero.duet-hero-product .background .brand-shaped-icon*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-icon.sc-duet-hero{position:absolute;top:160px;right:15%;display:flex;align-items:center;justify-content:center;width:85px;height:85px;background:rgba(0, 119, 179, 0.75);border-radius:25%;mix-blend-mode:normal;transform:rotate(7deg)}@media (min-width: 48em){/*!@.duet-hero.duet-hero-product .background .brand-shaped-icon*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-icon.sc-duet-hero{top:180px;width:120px;height:120px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .background .brand-shaped-icon:not(.narrow)*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-icon.sc-duet-hero:not(.narrow){top:292px;right:220px;width:150px;height:150px}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-product .background .brand-shaped-icon:not(.narrow)*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-icon.sc-duet-hero:not(.narrow){top:292px;right:220px;width:186px;height:186px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .background .brand-shaped-icon.narrow*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-icon.narrow.sc-duet-hero{right:35%}}/*!@.duet-hero.duet-hero-product .background .brand-shaped-icon duet-icon*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-icon.sc-duet-hero duet-icon.sc-duet-hero{width:80px;height:80px;transform:rotate(-7deg)}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .background .brand-shaped-icon duet-icon:not(.narrow)*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-icon.sc-duet-hero duet-icon.sc-duet-hero:not(.narrow){width:120px;height:120px}}/*!@.duet-hero.duet-hero-product .duet-hero-wrapper*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.sc-duet-hero{max-width:100%;margin:0 auto}/*!@.duet-hero.duet-hero-product .duet-hero-wrapper .duet-hero-text*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.sc-duet-hero .duet-hero-text.sc-duet-hero{margin-top:0}/*!@.duet-hero.duet-hero-product .duet-hero-wrapper .duet-hero-heading*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin-top:1rem}@media (min-width: 48em){/*!@.duet-hero.duet-hero-product .duet-hero-wrapper .duet-hero-heading*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin-top:2rem}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .duet-hero-wrapper .duet-hero-heading*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin-top:7rem}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-product .duet-hero-wrapper .duet-hero-heading*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin-top:7rem}}/*!@.duet-hero.duet-hero-product .duet-hero-wrapper.fluid, .duet-hero.duet-hero-product .duet-hero-wrapper.narrow*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.fluid.sc-duet-hero,.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.narrow.sc-duet-hero{padding:0 16px}@media (min-width: 36em){/*!@.duet-hero.duet-hero-product .duet-hero-wrapper.fluid*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.fluid.sc-duet-hero{padding:0 28px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .duet-hero-wrapper.fluid*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.fluid.sc-duet-hero{padding:0 56px}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-product .duet-hero-wrapper.fluid*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.fluid.sc-duet-hero{max-width:1110px;padding:0}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .duet-hero-wrapper.fluid .duet-hero-text*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.fluid.sc-duet-hero .duet-hero-text.sc-duet-hero{width:50%}}/*!@.duet-hero.duet-hero-product .duet-hero-wrapper.narrow*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.narrow.sc-duet-hero{max-width:888px}@media (min-width: 36em){/*!@.duet-hero.duet-hero-product .duet-hero-wrapper.narrow*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.narrow.sc-duet-hero{padding:0 48px}}@media (min-width: 48em){/*!@.duet-hero.duet-hero-product .duet-hero-wrapper.narrow*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.narrow.sc-duet-hero{padding:0 72px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .duet-hero-wrapper.narrow .duet-hero-text*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.narrow.sc-duet-hero .duet-hero-text.sc-duet-hero{width:80%}}/*!@.duet-hero.duet-hero-product.duet-theme-turva*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero{background:rgb(255, 255, 255)}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product.duet-theme-turva.duet-hero-narrow*/.duet-hero.duet-hero-product.duet-theme-turva.duet-hero-narrow.sc-duet-hero{padding-top:160px}}/*!@.duet-hero.duet-hero-product.duet-theme-turva .background-mask*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .background-mask.sc-duet-hero{position:absolute;top:0;left:0;display:block;width:721px;height:256.85px;background-image:url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzIxIiBoZWlnaHQ9IjI1NyIgdmlld0JveD0iMCAwIDcyMSAyNTciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8yODIwXzY5OTkxKSI+CjxwYXRoIGQ9Ik04MC4xNzA1IDIzLjE4MTVDOTEuOTY5OSAxOC44NjU5IDEwMi44NyAxMS42NTU5IDExMi45MDkgMS41NjQ0OEMxMjMuNzcgLTguMzA1MjcgMTM0LjM4MiAtMTguMjAxMSAxNDQuODI2IC0yOC4xODgyQzE1NS4yNDMgLTM4LjE2MjIgMTY1LjkwOCAtNDguMDg0MSAxNzYuNzQzIC01Ny45Mjc4QzE3OC44MTYgLTU5LjA0OSAxODAuNDk4IC02MC4yODc3IDE4MS43ODggLTYxLjY1NjdDMTgzLjA2NiAtNjMuMDEyNiAxODUuNDY1IC02Mi4yODI1IDE4OS4wMTIgLTU5LjQ3OTNDMTg0LjczNSAtNTEuMTM1IDE4MC43NTkgLTQyLjk2MDIgMTc3LjAxNyAtMzQuOTAyN0MxNzMuMjg4IC0yNi44NDUyIDE2Ny42ODEgLTE5LjEyNjggMTYwLjIxMSAtMTEuNzYwM0MxNTIuNzUzIC00LjM4MDgzIDE0NC45NTYgMy4zMTE1MiAxMzYuODQ3IDExLjM2OUMxMjguNzI0IDE5LjQyNjUgMTIwLjk2NiAyNy4xNDUgMTEzLjQ4MyAzNC40OTg0Qzk3LjQ5OCA0OS44MTggNzkuNjYyIDU2LjAyNDEgNjAuMDAwOCA1My4xNjg4QzQwLjI4NzQgNTAuMzEzNSAyNS41NDE0IDM5LjA3NDcgMTUuNjk3NyAxOS40Nzg2QzMuOTI0NDUgLTIuMzcyOTkgLTEuMjI1NTUgLTI0LjQ3MjQgMC4yNDc3NDMgLTQ2Ljc4MDNDMS4yNTE2NyAtNjcuNDg0NiAzLjQwMjkzIC04Ny43OTc4IDYuODA1ODQgLTEwNy43NzJDMTAuMTk1NyAtMTI3LjczMyAxNS43MTA4IC0xNDcuNDg2IDIzLjMzOCAtMTY3LjA0M0MyNi4zMTA3IC0xNzQuMDMxIDI5LjAwOTUgLTE4MC44NSAzMS40NzM3IC0xODcuNTY0QzMzLjkxMTggLTE5NC4yMjcgMzYuNTMyNCAtMjAwLjY2OCAzOS4yNTc0IC0yMDYuODQ4QzQxLjgxMjggLTIwOS41NzIgNDMuNDY4NiAtMjEyLjEyOCA0NC4xODU3IC0yMTQuNTRDNTMuMDI1NSAtMjI5LjM3NyA2Mi44MyAtMjM3Ljk5NSA3My42Mzg1IC0yNDAuNDMzQzg0LjM5NDggLTI0Mi44NzEgOTguMTM2OSAtMjM5LjgyMSAxMTQuODEyIC0yMzEuMzJDMTI3Ljk0MiAtMjI1LjYwOSAxMzMuMzkyIC0yMTYuMTA1IDEzMS4xNDkgLTIwMi43OTNDMTMwLjE3MSAtMTkwLjgzNyAxMjcuOTk0IC0xNzkuMjU5IDEyNC42MTcgLTE2OC4wMkMxMjAuMDQxIC0xNTIuNzc5IDExNS40MzggLTEzNy41NTEgMTEwLjg0OSAtMTIyLjMyMkMxMDYuMjczIC0xMDcuMDgxIDEwMS4yNzkgLTkxLjk2OTkgOTUuODk0MyAtNzcuMDAyM0M4NS41OTQzIC00OC42MDU3IDc5LjQyNzQgLTE5LjQyNjcgNzcuNDA2NSAxMC41NjA2Qzc3LjcxOTQgMTIuNDEyIDc4LjA0NTMgMTQuMjYzNSA3OC4zNTgzIDE2LjA4ODhDNzguNjcxMiAxNy45NDAyIDc5LjI3MDkgMjAuMyA4MC4xNzA1IDIzLjE5NDRNMTEwLjkxNCAtMjk2Ljc1N0MxMDkuNTQ1IC0yOTguMDM1IDEwNy4zMTYgLTI5OS4zNTIgMTA0LjIzOSAtMzAwLjczNEMxMDEuMTYyIC0zMDIuMDkgOTguMjQxMiAtMzA0LjA1OSA5NS41NDIzIC0zMDYuNjI3QzkwLjA3OTQgLTMxMS43NzcgODYuOTc2MyAtMzE4LjE2NiA4Ni4yMzMyIC0zMjUuODE5Qzg1LjQ2NCAtMzMzLjQ3MiA4Ny4zODA1IC0zNDAuNTUyIDkxLjk2OTkgLTM0Ny4wNThDOTMuMjIxNSAtMzQ4LjQxNCA5NC4xNDcyIC0zNDkuMjM1IDk0LjY4MTggLTM0OS41MjJDOTUuMTkwMyAtMzQ5Ljc5NiA5Ni4xMDI5IC0zNTAuNjA0IDk3LjM5MzcgLTM1MS45OTlDMTA5LjY3NSAtMzU3LjkwNiAxMjIuNDE0IC0zNTYuNjkzIDEzNS42MzQgLTM0OC4zMzZDMTQ2Ljk1MSAtMzQyLjMyNSAxNTIuMDg4IC0zMzMuMzE2IDE1MS4xMzYgLTMyMS4zNkwxNDguMjI5IC0zMTEuNzM4QzE0NC42NjkgLTI5Ny4wNyAxMzUuNTY5IC0yOTEuNTAzIDEyMC45MTQgLTI5NS4wNjJDMTE5LjA1IC0yOTQuNzIzIDExNS43MzggLTI5NS4yOTcgMTEwLjkxNCAtMjk2Ljc0NCIgZmlsbD0iI0Y1RjVGNyIvPgo8cGF0aCBkPSJNMjQyLjc2NyAyMTUuNTE4QzI0NS4wODggMjEzLjU4OCAyNDcuMjc4IDIxMi4xMDIgMjQ5LjM3NyAyMTAuOTY4QzI1MS40NSAyMDkuODU5IDI1My41MzYgMjA4Ljc1MSAyNTUuNjIyIDIwNy42MDRDMjc0LjIyNyAxOTIuMjg0IDI5MC41NzcgMTc3LjE2IDMwNC43MjMgMTYyLjE5M0MzMTUuNjg4IDE0OC45NDYgMzI2LjYxNCAxMzUuODU2IDMzNy40ODggMTIyLjk4N0MzNDguMzYxIDExMC4xMTkgMzU4Ljg4MyA5Ni45Mzc1IDM2OS4wNjYgODMuNDE3MUMzNzYuNDQ1IDczLjQzMDEgMzg0LjU4MSA2My44NjAyIDM5My40NDcgNTQuNzQ2NkM0MDIuMyA0NS42NDYxIDQxMC44MjYgMzYuMjMyNyA0MTkuMDAxIDI2LjQ4MDNDNDIxLjgwNCAyMi45NzMxIDQyNC4yMjkgMjAuMDAwNCA0MjYuMjg5IDE3LjU0OTNDNDI4LjMyMyAxNS4xMjQzIDQzMC41MDEgMTIuOTMzOCA0MzIuODM1IDExLjAxNzNDNDM0LjkwOCA5LjkwOTA2IDQzNi43NDYgOS41ODMwMSA0MzguMzYzIDEwLjA2NTRDNDM5Ljk1MyAxMC41NDc5IDQ0MS43OTIgMTAuMjQ4IDQ0My45MDQgOS4xMTM3MUM0NDMuMTg3IDExLjUxMjcgNDQyLjgyMiAxMy4zOTAzIDQ0Mi44ODcgMTQuNjk0QzQ0Mi45MjYgMTYuMDIzOSA0NDIuMjg3IDE3LjM2NjggNDQxLjAwOSAxOC43MjI3QzQyNC42NDcgNDYuOTYzIDQwNy42ODQgNzIuODE3MyAzOTAuMTIyIDk2LjMxMTdDMzc2LjY0MSAxMTQuOTU2IDM2My4xNDcgMTMyLjkwOSAzNDkuNjM5IDE1MC4yMjRDMzM2LjEwNiAxNjcuNTI1IDMyMi4yMiAxODUuMzYxIDMwNy45NDQgMjAzLjc1OEMzMDEuNTI5IDIxMC41MzcgMjk1LjM4OCAyMTcuMiAyODkuNDk1IDIyMy43MTlDMjgzLjU4OSAyMzAuMjI1IDI3Ny40MzUgMjM2LjkgMjcxLjAyIDI0My42NjdDMjU4LjkyMSAyNTQuODggMjQ0LjQ4OCAyNTkuMjM0IDIyNy43MzQgMjU2Ljc5NkMxOTYuODYgMjUxLjg4MSAxNzYuMDI1IDIzNi44NzQgMTY1LjIxNyAyMTEuNzg5QzE1NC42OTUgMTg4LjU2OCAxNDkuNTMyIDE2Ni41MDggMTQ5LjcwMiAxNDUuNjA4QzE0Ny45NDIgMTEzLjY3OCAxNDguMzA3IDgxLjk0MzggMTUwLjgxIDUwLjQxOEMxNTMuMyAxOC44NzkyIDE1OC4zMiAtMTIuMzIwNyAxNjUuODY5IC00My4yMDc3QzE4MC4xNzIgLTEwNS4yMDMgMTk4LjU2OCAtMTY2LjQwMyAyMjEuMTExIC0yMjYuODA4QzIzMi4wODkgLTI1Ny41MjYgMjQ0LjQyMyAtMjg3LjYxOCAyNTguMSAtMzE3LjA5NkMyNzEuNzc2IC0zNDYuNTc1IDI4Ni4zNzkgLTM3NS41MDcgMzAxLjk3MiAtNDA0LjAwOEMzMTIuOTUgLTQyNS45OSAzMjQuNjMyIC00NDcuMzQ2IDMzNi45NzkgLTQ2OC4wNjNDMzQ5LjMxMyAtNDg4Ljc1NCAzNjIuNDk1IC01MDkuMjI0IDM3Ni40MzIgLTUyOS40NTlDNDAzLjg2NCAtNTY4LjI5OSA0MzQuMTkgLTYwMy42NzEgNDY3LjM5OCAtNjM1LjU3NUM0NzUuNjM4IC02NDIuNjgxIDQ4My45OTUgLTY0OS4zMTcgNDkyLjQwNSAtNjU1LjUxQzUwMC44MjggLTY2MS42NzcgNTEwLjM5NyAtNjY2LjY1OCA1MjEuMTU0IC02NzAuMzk5QzU0NS4yNzQgLTY3Ny45NjEgNTY3LjcxMiAtNjc2Ljg3OSA1ODguMzkxIC02NjcuMTY2QzYwNC43MjcgLTY2MC40NzggNjEzLjY3MSAtNjQ5LjUxMyA2MTUuMjEgLTYzNC4yMTlDNjE3LjU5NiAtNjI0Ljc1NCA2MTguMTk1IC02MTMuNjcxIDYxNi45ODMgLTYwMC45NTlDNjEwLjMyIC01NTguNDgxIDU5Ny44NTYgLTUxNS41MzQgNTc5LjU1MSAtNDcyLjE5NkM1NjUuNDMxIC00MzkuODIzIDU0OS4wODEgLTQwOC43NTMgNTMwLjUyOCAtMzc5LjAwMUM1MTEuOTM2IC0zNDkuMjYxIDQ5Mi42MTQgLTMxOS45NTIgNDcyLjYgLTI5MS4wOTlDNDY1LjQ1NiAtMjgxLjkyIDQ1Ny45NDYgLTI3MS41MDMgNDUwLjEyMyAtMjU5LjkxMkM0MzMuNTc4IC0yMzYuOTc4IDQxNS42MzcgLTIxNS4xMjYgMzk2LjI4OSAtMTk0LjM1N0MzNzYuOTAyIC0xNzMuNTYxIDM1NS44NDUgLTE1NC4zOTYgMzMzLjA2OCAtMTM2LjgyQzMyMC4zODIgLTEyNi42OSAzMTIuNTMzIC0xMTUuMDg2IDMwOS40ODIgLTEwMi4wNDhDMzA0LjE4OSAtODQuNDQ2OCAyOTguOTc0IC02Ny4wNDExIDI5My43OTggLTQ5Ljg0NEMyODguNjIxIC0zMi42NDY5IDI4My43NzEgLTE1LjExMDggMjc5LjI4NiAyLjcxMjFDMjc1LjI3MSAxOC45NzA1IDI3MS4zMDcgMzQuOTgxIDI2Ny40MjIgNTAuODM1MkMyNjMuNTIzIDY2LjY2MzMgMjU5Ljk2NCA4Mi44NDM0IDI1Ni43NyA5OS4zMzY1QzI1My41NDkgMTE1LjgwMyAyNTAuNjgxIDEzMi42MjIgMjQ4LjE1MiAxNDkuNzQxQzI0NS42MDkgMTY2Ljg2IDI0My4xMzIgMTgzLjc5NyAyNDAuNzQ2IDIwMC40OThDMjQxLjA0NiAyMDIuMzM3IDI0MS4zMDcgMjA0LjM5NiAyNDEuNTE1IDIwNi42MTNDMjQxLjY5OCAyMDguODY4IDI0Mi4xMjggMjExLjg0MSAyNDIuNzggMjE1LjUxOE01NjQuMzIyIC02MjIuMDgxQzU2MS43MjggLTYxOS4zNDMgNTU4LjExNiAtNjE2LjA4MyA1NTMuNDg4IC02MTIuMjM3QzU0Mi4yMzYgLTU5OC4xNjkgNTMwLjk1OCAtNTgzLjkwNiA1MTkuNjI4IC01NjkuNDU5QzUwOC4yNTkgLTU1NC45ODcgNDk4LjA1IC01MzkuOTQxIDQ4OS4wMTUgLTUyNC4zNzRDNDU5LjIzNiAtNDc0Ljg2OSA0MzIuNzY5IC00MjMuOTU2IDQwOS42MDEgLTM3MS42MDhDMzg2LjQxOSAtMzE5LjI0OCAzNjUuMTkzIC0yNjUuNDQgMzQ1LjkzNiAtMjEwLjE3MkMzNDUuNzAyIC0yMDkuMzc3IDM0NS43MDIgLTIwOC43MTIgMzQ2LjAxNSAtMjA4LjE5QzM0Ni4yNjIgLTIwNy42NTYgMzQ2LjE4NCAtMjA2LjU4NyAzNDUuNzE1IC0yMDUuMDA5QzM0OS4zNzggLTIwNS42MjIgMzUxLjM2IC0yMDYuMzM5IDM1MS42MDggLTIwNy4xNDdDMzU1LjQ2NyAtMjExLjIxNSAzNTkuNTA5IC0yMTUuMjMxIDM2My43NDYgLTIxOS4xOTRDMzY3Ljk5NyAtMjIzLjE0NSAzNzEuNzY1IC0yMjcuNjgyIDM3NS4wNzYgLTIzMi44MTlDNDAyLjg4NiAtMjY3LjE2MSA0MjguNzE0IC0zMDIuMTQyIDQ1Mi41MzUgLTMzNy43MzZDNDc2LjM2OCAtMzczLjMwMyA0OTguNTMzIC00MTAuNjk2IDUxOS4wNjggLTQ0OS44ODhDNTQzLjg1MyAtNDk3LjM3MiA1NTkuNTc3IC01NDYuNzM0IDU2Ni4yNTIgLTU5Ny45MzRDNTY2LjY0MyAtNjAyLjE4NSA1NjYuOTE3IC02MDYuMDE4IDU2Ny4xIC02MDkuNDZDNTY3LjI0MyAtNjEyLjkwMiA1NjYuMzE3IC02MTcuMSA1NjQuMzM2IC02MjIuMDgxIiBmaWxsPSIjRjVGNUY3Ii8+CjxwYXRoIGQ9Ik02OTYuNTE1IDE4OS4wNjRDNzA0LjYzOCAxODQuMzk2IDcxMi42ODIgMTc5LjYxMSA3MjAuNjg4IDE3NC43MzVWMTM0LjA1N0M2OTcuODE5IDE0OC41MDMgNjczLjgwMyAxNTkuNjM3IDY0OC42MDEgMTY3LjQyMUM2MjIuMDgyIDE3NS42MzUgNTk0LjU1OCAxODAuNjY3IDU2Ni4wMTggMTgyLjU1OEM1NTAuOTIgMTgzLjI2MiA1NDEuMjk4IDE4MS44OTMgNTM3LjEgMTc4LjQzOEM1MzIuODc2IDE3NS4wMDkgNTI5LjA5NSAxNjUuNzUyIDUyNS43NTcgMTUwLjc0NUw1MjMuOTU4IDEzMC41NDlDNTIzLjMzMiAxMTguMTI0IDUyNC43NjYgMTA2Ljc1NSA1MjguMzM5IDk2LjQyODlDNTMxLjg1OSA4Ni4xNTUgNTM2LjEyMiA3NS42MjAzIDU0MS4xMTYgNjQuODc3QzU0NS42MTQgNjQuNDg1OSA1NDkuNTY0IDY0LjM2ODUgNTUzLjAzMiA2NC41MzhDNTU2LjQ3NSA2NC42OTQ1IDU2MC40MzggNjQuNTc3MSA1NjQuOTQ5IDY0LjE3MjlDNTg1Ljg3NSA2NC4zNjg1IDYwNy42MzYgNjEuNzQ3OSA2MzAuMjY5IDU2LjI4NDlDNjUyLjA4MiA1MC42MjY1IDY3MC40IDQxLjI3ODIgNjg1LjI3NyAyOC4yNTMzQzY5NC45MzggMTkuNzc4NiA3MDQuMDI1IDEwLjM3ODMgNzEyLjU2NSAwLjA5MTMwODZINjM5LjUyNkM2MjAuMjU2IDE2Ljk4ODUgNTk2Ljk0NCAyNy40ODQxIDU2OS41MzkgMzEuNDYwN0M1NjcuNjYxIDMxLjc3MzYgNTY2LjM1NyAzMS44MTI3IDU2NS41NzUgMzEuNTY1QzU2NC43NTQgMzEuMzMwMyA1NjMuODI4IDMxLjUxMjggNTYyLjgxMSAzMi4wNDc0QzU2MS45OSAzMS44MTI3IDU2MS42NTEgMzEuNDk5OCA1NjEuNzgxIDMxLjA4MjZDNTYxLjg5OCAzMC42OTE1IDU2MS41NDYgMzAuMzY1NSA1NjAuNzUxIDMwLjEzMDhDNTYwLjk5OSAyOS4zMzU1IDU2MC45MDcgMjguODY2MSA1NjAuNTE2IDI4Ljc2MThDNTYwLjA5OSAyOC42MTg0IDU2MC4wMzQgMjguMTYyIDU2MC4yOTUgMjcuMzUzN0M1NjUuMzc5IDE4LjE3NDkgNTcwLjc3NyA5LjEwMDU1IDU3Ni40MzYgMC4wOTEzMDg2SDQzMC4xNzZDNDI0LjIwNCAxMi42NzMgNDE5LjA1NCAyNS45NDU2IDQxNC44MyAzOS45ODc1QzQwNi40NzMgNjEuOTU2NSA0MDQuMjgyIDgyLjI2OTcgNDA4LjI4NSAxMDAuOTY2QzQxMi4wMTQgMTIwLjQ1OCA0MTguODMzIDEzOC40NjMgNDI4LjcyOCAxNTQuOTgyQzQzOC42MTEgMTcxLjUyOCA0NTIuNDU4IDE4NS4wODcgNDcwLjI1NCAxOTUuN0M0OTAuNzM3IDIwOC44ODEgNTEyLjE0NSAyMTcuNzIxIDUzNC40MDEgMjIyLjI0NUM1NTYuNjQ0IDIyNi43NTcgNTc5Ljg2NSAyMjYuNTA5IDYwNC4xMTUgMjIxLjU2N0M2MDkuNjQzIDIyMC42MTYgNjE1LjI2MyAyMTkuNDY4IDYyMC45MjEgMjE4LjA5OUM2MjYuNTY3IDIxNi43NTYgNjMyLjI3NyAyMTUuMTkyIDYzOC4wNTMgMjEzLjQxOUM2NTkuMDU3IDIwNy41MjUgNjc4LjU2MiAxOTkuMzkgNjk2LjU0MSAxODkuMDc3IiBmaWxsPSIjRjVGNUY3Ii8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMjgyMF82OTk5MSI+CjxyZWN0IHdpZHRoPSI3MjEiIGhlaWdodD0iMjU2Ljg0OCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K\");background-repeat:no-repeat}@media (min-width: 48em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .background-mask*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .background-mask.sc-duet-hero{left:181px}}/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-image*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-image.sc-duet-hero{top:-185px;right:0;left:0;width:485px;height:485px;margin:0 auto;border-radius:0;transform:none;-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");-webkit-mask-repeat:no-repeat;mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");mask-repeat:no-repeat}@media (min-width: 36em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-image*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-image.sc-duet-hero{right:0}}@media (min-width: 48em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-image*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-image.sc-duet-hero{top:-165px;right:0}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-image.narrow*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-image.narrow.sc-duet-hero{right:40%;left:auto}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-image:not(.narrow)*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-image.sc-duet-hero:not(.narrow){top:-230px;right:-180px;left:auto;width:675px;height:675px;margin:0}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-image:not(.narrow)*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-image.sc-duet-hero:not(.narrow){right:-120px;width:736px}}/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-image .brand-shaped-image-bg*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-image.sc-duet-hero .brand-shaped-image-bg.sc-duet-hero{width:600px;height:320px;transform:translate(-50%, 0)}@media (min-width: 48em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-image .brand-shaped-image-bg*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-image.sc-duet-hero .brand-shaped-image-bg.sc-duet-hero{width:600px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-image .brand-shaped-image-bg:not(.narrow)*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-image.sc-duet-hero .brand-shaped-image-bg.sc-duet-hero:not(.narrow){width:800px;height:470px}}/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-icon*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-icon.sc-duet-hero{top:150px;background:rgba(198, 12, 48, 0.9);-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");-webkit-mask-repeat:no-repeat;mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");mask-repeat:no-repeat;transform:rotate(0deg)}/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-icon duet-icon*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-icon.sc-duet-hero duet-icon.sc-duet-hero{position:relative;top:-10px;transform:rotate(0deg)}@media (min-width: 48em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-icon duet-icon*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-icon.sc-duet-hero duet-icon.sc-duet-hero{top:-15px}}@media (min-width: 48em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-icon*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-icon.sc-duet-hero{top:180px;right:20%}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-icon*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-icon.sc-duet-hero{top:192px}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-icon*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-icon.sc-duet-hero{top:192px}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-icon.narrow*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-icon.narrow.sc-duet-hero{right:40%}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-icon:not(.narrow)*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-icon.sc-duet-hero:not(.narrow){right:340px}}/*!@.duet-hero.duet-hero-content*/.duet-hero.duet-hero-content.sc-duet-hero{padding:0 0 48px;padding-top:236px;background:rgb(255, 255, 255)}@media (min-width: 48em){/*!@.duet-hero.duet-hero-content*/.duet-hero.duet-hero-content.sc-duet-hero{padding-top:384px}}/*!@.duet-hero.duet-hero-content:not(.duet-hero-has-image)*/.duet-hero.duet-hero-content.sc-duet-hero:not(.duet-hero-has-image){padding:72px 0 48px}/*!@.duet-hero.duet-hero-content .background-area*/.duet-hero.duet-hero-content.sc-duet-hero .background-area.sc-duet-hero{position:absolute;width:100%}/*!@.duet-hero.duet-hero-content .background*/.duet-hero.duet-hero-content.sc-duet-hero .background.sc-duet-hero{position:absolute;top:-236px;width:100%;height:600px;overflow:hidden}/*!@.duet-hero.duet-hero-content .background .background-mask*/.duet-hero.duet-hero-content.sc-duet-hero .background.sc-duet-hero .background-mask.sc-duet-hero{display:none}@media (min-width: 48em){/*!@.duet-hero.duet-hero-content .background*/.duet-hero.duet-hero-content.sc-duet-hero .background.sc-duet-hero{top:-384px}}/*!@.duet-hero.duet-hero-content .background .brand-shaped-image*/.duet-hero.duet-hero-content.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero{position:absolute;top:-165px;right:0;left:30px;z-index:0;width:375px;height:375px;margin:0 auto;overflow:hidden;border-radius:20%;transform:rotate(7deg)}@media (min-width: 48em){/*!@.duet-hero.duet-hero-content .background .brand-shaped-image*/.duet-hero.duet-hero-content.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero{top:-325px;left:250px;width:687px;height:687px}}/*!@.duet-hero.duet-hero-content .background .brand-shaped-image .brand-shaped-image-wrapper*/.duet-hero.duet-hero-content.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero .brand-shaped-image-wrapper.sc-duet-hero{position:relative;width:100%;height:100%}/*!@.duet-hero.duet-hero-content .background .brand-shaped-image .brand-shaped-image-bg*/.duet-hero.duet-hero-content.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero .brand-shaped-image-bg.sc-duet-hero{position:absolute;bottom:0;left:50%;z-index:1;width:600px;height:256px;background-repeat:no-repeat;background-size:100%;transform:rotate(-7deg) translate(-50%, 0)}@media (min-width: 48em){/*!@.duet-hero.duet-hero-content .background .brand-shaped-image .brand-shaped-image-bg*/.duet-hero.duet-hero-content.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero .brand-shaped-image-bg.sc-duet-hero{width:733px;height:413px}}/*!@.duet-hero.duet-hero-content .background .brand-shape*/.duet-hero.duet-hero-content.sc-duet-hero .background.sc-duet-hero .brand-shape.sc-duet-hero{position:absolute;top:-25px;right:0;left:-300px;width:240px;height:240px;margin-right:auto;margin-left:auto;background:rgb(0, 119, 179);border-radius:20%;mix-blend-mode:normal;opacity:0.07;transform:rotate(7deg)}@media (min-width: 48em){/*!@.duet-hero.duet-hero-content .background .brand-shape*/.duet-hero.duet-hero-content.sc-duet-hero .background.sc-duet-hero .brand-shape.sc-duet-hero{top:80px;left:-400px;width:373px;height:373px}}/*!@.duet-hero.duet-hero-content .duet-hero-wrapper*/.duet-hero.duet-hero-content.sc-duet-hero .duet-hero-wrapper.sc-duet-hero{max-width:100%;margin:0 auto}/*!@.duet-hero.duet-hero-content .duet-hero-wrapper.fluid, .duet-hero.duet-hero-content .duet-hero-wrapper.narrow*/.duet-hero.duet-hero-content.sc-duet-hero .duet-hero-wrapper.fluid.sc-duet-hero,.duet-hero.duet-hero-content.sc-duet-hero .duet-hero-wrapper.narrow.sc-duet-hero{padding:0 16px}@media (min-width: 36em){/*!@.duet-hero.duet-hero-content .duet-hero-wrapper.fluid*/.duet-hero.duet-hero-content.sc-duet-hero .duet-hero-wrapper.fluid.sc-duet-hero{padding:0 28px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-content .duet-hero-wrapper.fluid*/.duet-hero.duet-hero-content.sc-duet-hero .duet-hero-wrapper.fluid.sc-duet-hero{padding:0 56px}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-content .duet-hero-wrapper.fluid*/.duet-hero.duet-hero-content.sc-duet-hero .duet-hero-wrapper.fluid.sc-duet-hero{max-width:1110px;padding:0}}/*!@.duet-hero.duet-hero-content .duet-hero-wrapper.narrow*/.duet-hero.duet-hero-content.sc-duet-hero .duet-hero-wrapper.narrow.sc-duet-hero{max-width:888px}@media (min-width: 36em){/*!@.duet-hero.duet-hero-content .duet-hero-wrapper.narrow*/.duet-hero.duet-hero-content.sc-duet-hero .duet-hero-wrapper.narrow.sc-duet-hero{padding:0 48px}}@media (min-width: 48em){/*!@.duet-hero.duet-hero-content .duet-hero-wrapper.narrow*/.duet-hero.duet-hero-content.sc-duet-hero .duet-hero-wrapper.narrow.sc-duet-hero{padding:0 72px}}/*!@.duet-hero.duet-hero-content .duet-hero-text*/.duet-hero.duet-hero-content.sc-duet-hero .duet-hero-text.sc-duet-hero{max-width:100%}@media (min-width: 62em){/*!@.duet-hero.duet-hero-content .duet-hero-text*/.duet-hero.duet-hero-content.sc-duet-hero .duet-hero-text.sc-duet-hero{width:80%}}/*!@.duet-hero.duet-hero-content.duet-theme-turva*/.duet-hero.duet-hero-content.duet-theme-turva.sc-duet-hero{background:rgb(255, 255, 255)}/*!@.duet-hero.duet-hero-content.duet-theme-turva .background-mask*/.duet-hero.duet-hero-content.duet-theme-turva.sc-duet-hero .background-mask.sc-duet-hero{position:absolute;top:0;left:0;display:block;width:721px;height:256.85px;background-image:url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzIxIiBoZWlnaHQ9IjI1NyIgdmlld0JveD0iMCAwIDcyMSAyNTciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8yODIwXzY5OTkxKSI+CjxwYXRoIGQ9Ik04MC4xNzA1IDIzLjE4MTVDOTEuOTY5OSAxOC44NjU5IDEwMi44NyAxMS42NTU5IDExMi45MDkgMS41NjQ0OEMxMjMuNzcgLTguMzA1MjcgMTM0LjM4MiAtMTguMjAxMSAxNDQuODI2IC0yOC4xODgyQzE1NS4yNDMgLTM4LjE2MjIgMTY1LjkwOCAtNDguMDg0MSAxNzYuNzQzIC01Ny45Mjc4QzE3OC44MTYgLTU5LjA0OSAxODAuNDk4IC02MC4yODc3IDE4MS43ODggLTYxLjY1NjdDMTgzLjA2NiAtNjMuMDEyNiAxODUuNDY1IC02Mi4yODI1IDE4OS4wMTIgLTU5LjQ3OTNDMTg0LjczNSAtNTEuMTM1IDE4MC43NTkgLTQyLjk2MDIgMTc3LjAxNyAtMzQuOTAyN0MxNzMuMjg4IC0yNi44NDUyIDE2Ny42ODEgLTE5LjEyNjggMTYwLjIxMSAtMTEuNzYwM0MxNTIuNzUzIC00LjM4MDgzIDE0NC45NTYgMy4zMTE1MiAxMzYuODQ3IDExLjM2OUMxMjguNzI0IDE5LjQyNjUgMTIwLjk2NiAyNy4xNDUgMTEzLjQ4MyAzNC40OTg0Qzk3LjQ5OCA0OS44MTggNzkuNjYyIDU2LjAyNDEgNjAuMDAwOCA1My4xNjg4QzQwLjI4NzQgNTAuMzEzNSAyNS41NDE0IDM5LjA3NDcgMTUuNjk3NyAxOS40Nzg2QzMuOTI0NDUgLTIuMzcyOTkgLTEuMjI1NTUgLTI0LjQ3MjQgMC4yNDc3NDMgLTQ2Ljc4MDNDMS4yNTE2NyAtNjcuNDg0NiAzLjQwMjkzIC04Ny43OTc4IDYuODA1ODQgLTEwNy43NzJDMTAuMTk1NyAtMTI3LjczMyAxNS43MTA4IC0xNDcuNDg2IDIzLjMzOCAtMTY3LjA0M0MyNi4zMTA3IC0xNzQuMDMxIDI5LjAwOTUgLTE4MC44NSAzMS40NzM3IC0xODcuNTY0QzMzLjkxMTggLTE5NC4yMjcgMzYuNTMyNCAtMjAwLjY2OCAzOS4yNTc0IC0yMDYuODQ4QzQxLjgxMjggLTIwOS41NzIgNDMuNDY4NiAtMjEyLjEyOCA0NC4xODU3IC0yMTQuNTRDNTMuMDI1NSAtMjI5LjM3NyA2Mi44MyAtMjM3Ljk5NSA3My42Mzg1IC0yNDAuNDMzQzg0LjM5NDggLTI0Mi44NzEgOTguMTM2OSAtMjM5LjgyMSAxMTQuODEyIC0yMzEuMzJDMTI3Ljk0MiAtMjI1LjYwOSAxMzMuMzkyIC0yMTYuMTA1IDEzMS4xNDkgLTIwMi43OTNDMTMwLjE3MSAtMTkwLjgzNyAxMjcuOTk0IC0xNzkuMjU5IDEyNC42MTcgLTE2OC4wMkMxMjAuMDQxIC0xNTIuNzc5IDExNS40MzggLTEzNy41NTEgMTEwLjg0OSAtMTIyLjMyMkMxMDYuMjczIC0xMDcuMDgxIDEwMS4yNzkgLTkxLjk2OTkgOTUuODk0MyAtNzcuMDAyM0M4NS41OTQzIC00OC42MDU3IDc5LjQyNzQgLTE5LjQyNjcgNzcuNDA2NSAxMC41NjA2Qzc3LjcxOTQgMTIuNDEyIDc4LjA0NTMgMTQuMjYzNSA3OC4zNTgzIDE2LjA4ODhDNzguNjcxMiAxNy45NDAyIDc5LjI3MDkgMjAuMyA4MC4xNzA1IDIzLjE5NDRNMTEwLjkxNCAtMjk2Ljc1N0MxMDkuNTQ1IC0yOTguMDM1IDEwNy4zMTYgLTI5OS4zNTIgMTA0LjIzOSAtMzAwLjczNEMxMDEuMTYyIC0zMDIuMDkgOTguMjQxMiAtMzA0LjA1OSA5NS41NDIzIC0zMDYuNjI3QzkwLjA3OTQgLTMxMS43NzcgODYuOTc2MyAtMzE4LjE2NiA4Ni4yMzMyIC0zMjUuODE5Qzg1LjQ2NCAtMzMzLjQ3MiA4Ny4zODA1IC0zNDAuNTUyIDkxLjk2OTkgLTM0Ny4wNThDOTMuMjIxNSAtMzQ4LjQxNCA5NC4xNDcyIC0zNDkuMjM1IDk0LjY4MTggLTM0OS41MjJDOTUuMTkwMyAtMzQ5Ljc5NiA5Ni4xMDI5IC0zNTAuNjA0IDk3LjM5MzcgLTM1MS45OTlDMTA5LjY3NSAtMzU3LjkwNiAxMjIuNDE0IC0zNTYuNjkzIDEzNS42MzQgLTM0OC4zMzZDMTQ2Ljk1MSAtMzQyLjMyNSAxNTIuMDg4IC0zMzMuMzE2IDE1MS4xMzYgLTMyMS4zNkwxNDguMjI5IC0zMTEuNzM4QzE0NC42NjkgLTI5Ny4wNyAxMzUuNTY5IC0yOTEuNTAzIDEyMC45MTQgLTI5NS4wNjJDMTE5LjA1IC0yOTQuNzIzIDExNS43MzggLTI5NS4yOTcgMTEwLjkxNCAtMjk2Ljc0NCIgZmlsbD0iI0Y1RjVGNyIvPgo8cGF0aCBkPSJNMjQyLjc2NyAyMTUuNTE4QzI0NS4wODggMjEzLjU4OCAyNDcuMjc4IDIxMi4xMDIgMjQ5LjM3NyAyMTAuOTY4QzI1MS40NSAyMDkuODU5IDI1My41MzYgMjA4Ljc1MSAyNTUuNjIyIDIwNy42MDRDMjc0LjIyNyAxOTIuMjg0IDI5MC41NzcgMTc3LjE2IDMwNC43MjMgMTYyLjE5M0MzMTUuNjg4IDE0OC45NDYgMzI2LjYxNCAxMzUuODU2IDMzNy40ODggMTIyLjk4N0MzNDguMzYxIDExMC4xMTkgMzU4Ljg4MyA5Ni45Mzc1IDM2OS4wNjYgODMuNDE3MUMzNzYuNDQ1IDczLjQzMDEgMzg0LjU4MSA2My44NjAyIDM5My40NDcgNTQuNzQ2NkM0MDIuMyA0NS42NDYxIDQxMC44MjYgMzYuMjMyNyA0MTkuMDAxIDI2LjQ4MDNDNDIxLjgwNCAyMi45NzMxIDQyNC4yMjkgMjAuMDAwNCA0MjYuMjg5IDE3LjU0OTNDNDI4LjMyMyAxNS4xMjQzIDQzMC41MDEgMTIuOTMzOCA0MzIuODM1IDExLjAxNzNDNDM0LjkwOCA5LjkwOTA2IDQzNi43NDYgOS41ODMwMSA0MzguMzYzIDEwLjA2NTRDNDM5Ljk1MyAxMC41NDc5IDQ0MS43OTIgMTAuMjQ4IDQ0My45MDQgOS4xMTM3MUM0NDMuMTg3IDExLjUxMjcgNDQyLjgyMiAxMy4zOTAzIDQ0Mi44ODcgMTQuNjk0QzQ0Mi45MjYgMTYuMDIzOSA0NDIuMjg3IDE3LjM2NjggNDQxLjAwOSAxOC43MjI3QzQyNC42NDcgNDYuOTYzIDQwNy42ODQgNzIuODE3MyAzOTAuMTIyIDk2LjMxMTdDMzc2LjY0MSAxMTQuOTU2IDM2My4xNDcgMTMyLjkwOSAzNDkuNjM5IDE1MC4yMjRDMzM2LjEwNiAxNjcuNTI1IDMyMi4yMiAxODUuMzYxIDMwNy45NDQgMjAzLjc1OEMzMDEuNTI5IDIxMC41MzcgMjk1LjM4OCAyMTcuMiAyODkuNDk1IDIyMy43MTlDMjgzLjU4OSAyMzAuMjI1IDI3Ny40MzUgMjM2LjkgMjcxLjAyIDI0My42NjdDMjU4LjkyMSAyNTQuODggMjQ0LjQ4OCAyNTkuMjM0IDIyNy43MzQgMjU2Ljc5NkMxOTYuODYgMjUxLjg4MSAxNzYuMDI1IDIzNi44NzQgMTY1LjIxNyAyMTEuNzg5QzE1NC42OTUgMTg4LjU2OCAxNDkuNTMyIDE2Ni41MDggMTQ5LjcwMiAxNDUuNjA4QzE0Ny45NDIgMTEzLjY3OCAxNDguMzA3IDgxLjk0MzggMTUwLjgxIDUwLjQxOEMxNTMuMyAxOC44NzkyIDE1OC4zMiAtMTIuMzIwNyAxNjUuODY5IC00My4yMDc3QzE4MC4xNzIgLTEwNS4yMDMgMTk4LjU2OCAtMTY2LjQwMyAyMjEuMTExIC0yMjYuODA4QzIzMi4wODkgLTI1Ny41MjYgMjQ0LjQyMyAtMjg3LjYxOCAyNTguMSAtMzE3LjA5NkMyNzEuNzc2IC0zNDYuNTc1IDI4Ni4zNzkgLTM3NS41MDcgMzAxLjk3MiAtNDA0LjAwOEMzMTIuOTUgLTQyNS45OSAzMjQuNjMyIC00NDcuMzQ2IDMzNi45NzkgLTQ2OC4wNjNDMzQ5LjMxMyAtNDg4Ljc1NCAzNjIuNDk1IC01MDkuMjI0IDM3Ni40MzIgLTUyOS40NTlDNDAzLjg2NCAtNTY4LjI5OSA0MzQuMTkgLTYwMy42NzEgNDY3LjM5OCAtNjM1LjU3NUM0NzUuNjM4IC02NDIuNjgxIDQ4My45OTUgLTY0OS4zMTcgNDkyLjQwNSAtNjU1LjUxQzUwMC44MjggLTY2MS42NzcgNTEwLjM5NyAtNjY2LjY1OCA1MjEuMTU0IC02NzAuMzk5QzU0NS4yNzQgLTY3Ny45NjEgNTY3LjcxMiAtNjc2Ljg3OSA1ODguMzkxIC02NjcuMTY2QzYwNC43MjcgLTY2MC40NzggNjEzLjY3MSAtNjQ5LjUxMyA2MTUuMjEgLTYzNC4yMTlDNjE3LjU5NiAtNjI0Ljc1NCA2MTguMTk1IC02MTMuNjcxIDYxNi45ODMgLTYwMC45NTlDNjEwLjMyIC01NTguNDgxIDU5Ny44NTYgLTUxNS41MzQgNTc5LjU1MSAtNDcyLjE5NkM1NjUuNDMxIC00MzkuODIzIDU0OS4wODEgLTQwOC43NTMgNTMwLjUyOCAtMzc5LjAwMUM1MTEuOTM2IC0zNDkuMjYxIDQ5Mi42MTQgLTMxOS45NTIgNDcyLjYgLTI5MS4wOTlDNDY1LjQ1NiAtMjgxLjkyIDQ1Ny45NDYgLTI3MS41MDMgNDUwLjEyMyAtMjU5LjkxMkM0MzMuNTc4IC0yMzYuOTc4IDQxNS42MzcgLTIxNS4xMjYgMzk2LjI4OSAtMTk0LjM1N0MzNzYuOTAyIC0xNzMuNTYxIDM1NS44NDUgLTE1NC4zOTYgMzMzLjA2OCAtMTM2LjgyQzMyMC4zODIgLTEyNi42OSAzMTIuNTMzIC0xMTUuMDg2IDMwOS40ODIgLTEwMi4wNDhDMzA0LjE4OSAtODQuNDQ2OCAyOTguOTc0IC02Ny4wNDExIDI5My43OTggLTQ5Ljg0NEMyODguNjIxIC0zMi42NDY5IDI4My43NzEgLTE1LjExMDggMjc5LjI4NiAyLjcxMjFDMjc1LjI3MSAxOC45NzA1IDI3MS4zMDcgMzQuOTgxIDI2Ny40MjIgNTAuODM1MkMyNjMuNTIzIDY2LjY2MzMgMjU5Ljk2NCA4Mi44NDM0IDI1Ni43NyA5OS4zMzY1QzI1My41NDkgMTE1LjgwMyAyNTAuNjgxIDEzMi42MjIgMjQ4LjE1MiAxNDkuNzQxQzI0NS42MDkgMTY2Ljg2IDI0My4xMzIgMTgzLjc5NyAyNDAuNzQ2IDIwMC40OThDMjQxLjA0NiAyMDIuMzM3IDI0MS4zMDcgMjA0LjM5NiAyNDEuNTE1IDIwNi42MTNDMjQxLjY5OCAyMDguODY4IDI0Mi4xMjggMjExLjg0MSAyNDIuNzggMjE1LjUxOE01NjQuMzIyIC02MjIuMDgxQzU2MS43MjggLTYxOS4zNDMgNTU4LjExNiAtNjE2LjA4MyA1NTMuNDg4IC02MTIuMjM3QzU0Mi4yMzYgLTU5OC4xNjkgNTMwLjk1OCAtNTgzLjkwNiA1MTkuNjI4IC01NjkuNDU5QzUwOC4yNTkgLTU1NC45ODcgNDk4LjA1IC01MzkuOTQxIDQ4OS4wMTUgLTUyNC4zNzRDNDU5LjIzNiAtNDc0Ljg2OSA0MzIuNzY5IC00MjMuOTU2IDQwOS42MDEgLTM3MS42MDhDMzg2LjQxOSAtMzE5LjI0OCAzNjUuMTkzIC0yNjUuNDQgMzQ1LjkzNiAtMjEwLjE3MkMzNDUuNzAyIC0yMDkuMzc3IDM0NS43MDIgLTIwOC43MTIgMzQ2LjAxNSAtMjA4LjE5QzM0Ni4yNjIgLTIwNy42NTYgMzQ2LjE4NCAtMjA2LjU4NyAzNDUuNzE1IC0yMDUuMDA5QzM0OS4zNzggLTIwNS42MjIgMzUxLjM2IC0yMDYuMzM5IDM1MS42MDggLTIwNy4xNDdDMzU1LjQ2NyAtMjExLjIxNSAzNTkuNTA5IC0yMTUuMjMxIDM2My43NDYgLTIxOS4xOTRDMzY3Ljk5NyAtMjIzLjE0NSAzNzEuNzY1IC0yMjcuNjgyIDM3NS4wNzYgLTIzMi44MTlDNDAyLjg4NiAtMjY3LjE2MSA0MjguNzE0IC0zMDIuMTQyIDQ1Mi41MzUgLTMzNy43MzZDNDc2LjM2OCAtMzczLjMwMyA0OTguNTMzIC00MTAuNjk2IDUxOS4wNjggLTQ0OS44ODhDNTQzLjg1MyAtNDk3LjM3MiA1NTkuNTc3IC01NDYuNzM0IDU2Ni4yNTIgLTU5Ny45MzRDNTY2LjY0MyAtNjAyLjE4NSA1NjYuOTE3IC02MDYuMDE4IDU2Ny4xIC02MDkuNDZDNTY3LjI0MyAtNjEyLjkwMiA1NjYuMzE3IC02MTcuMSA1NjQuMzM2IC02MjIuMDgxIiBmaWxsPSIjRjVGNUY3Ii8+CjxwYXRoIGQ9Ik02OTYuNTE1IDE4OS4wNjRDNzA0LjYzOCAxODQuMzk2IDcxMi42ODIgMTc5LjYxMSA3MjAuNjg4IDE3NC43MzVWMTM0LjA1N0M2OTcuODE5IDE0OC41MDMgNjczLjgwMyAxNTkuNjM3IDY0OC42MDEgMTY3LjQyMUM2MjIuMDgyIDE3NS42MzUgNTk0LjU1OCAxODAuNjY3IDU2Ni4wMTggMTgyLjU1OEM1NTAuOTIgMTgzLjI2MiA1NDEuMjk4IDE4MS44OTMgNTM3LjEgMTc4LjQzOEM1MzIuODc2IDE3NS4wMDkgNTI5LjA5NSAxNjUuNzUyIDUyNS43NTcgMTUwLjc0NUw1MjMuOTU4IDEzMC41NDlDNTIzLjMzMiAxMTguMTI0IDUyNC43NjYgMTA2Ljc1NSA1MjguMzM5IDk2LjQyODlDNTMxLjg1OSA4Ni4xNTUgNTM2LjEyMiA3NS42MjAzIDU0MS4xMTYgNjQuODc3QzU0NS42MTQgNjQuNDg1OSA1NDkuNTY0IDY0LjM2ODUgNTUzLjAzMiA2NC41MzhDNTU2LjQ3NSA2NC42OTQ1IDU2MC40MzggNjQuNTc3MSA1NjQuOTQ5IDY0LjE3MjlDNTg1Ljg3NSA2NC4zNjg1IDYwNy42MzYgNjEuNzQ3OSA2MzAuMjY5IDU2LjI4NDlDNjUyLjA4MiA1MC42MjY1IDY3MC40IDQxLjI3ODIgNjg1LjI3NyAyOC4yNTMzQzY5NC45MzggMTkuNzc4NiA3MDQuMDI1IDEwLjM3ODMgNzEyLjU2NSAwLjA5MTMwODZINjM5LjUyNkM2MjAuMjU2IDE2Ljk4ODUgNTk2Ljk0NCAyNy40ODQxIDU2OS41MzkgMzEuNDYwN0M1NjcuNjYxIDMxLjc3MzYgNTY2LjM1NyAzMS44MTI3IDU2NS41NzUgMzEuNTY1QzU2NC43NTQgMzEuMzMwMyA1NjMuODI4IDMxLjUxMjggNTYyLjgxMSAzMi4wNDc0QzU2MS45OSAzMS44MTI3IDU2MS42NTEgMzEuNDk5OCA1NjEuNzgxIDMxLjA4MjZDNTYxLjg5OCAzMC42OTE1IDU2MS41NDYgMzAuMzY1NSA1NjAuNzUxIDMwLjEzMDhDNTYwLjk5OSAyOS4zMzU1IDU2MC45MDcgMjguODY2MSA1NjAuNTE2IDI4Ljc2MThDNTYwLjA5OSAyOC42MTg0IDU2MC4wMzQgMjguMTYyIDU2MC4yOTUgMjcuMzUzN0M1NjUuMzc5IDE4LjE3NDkgNTcwLjc3NyA5LjEwMDU1IDU3Ni40MzYgMC4wOTEzMDg2SDQzMC4xNzZDNDI0LjIwNCAxMi42NzMgNDE5LjA1NCAyNS45NDU2IDQxNC44MyAzOS45ODc1QzQwNi40NzMgNjEuOTU2NSA0MDQuMjgyIDgyLjI2OTcgNDA4LjI4NSAxMDAuOTY2QzQxMi4wMTQgMTIwLjQ1OCA0MTguODMzIDEzOC40NjMgNDI4LjcyOCAxNTQuOTgyQzQzOC42MTEgMTcxLjUyOCA0NTIuNDU4IDE4NS4wODcgNDcwLjI1NCAxOTUuN0M0OTAuNzM3IDIwOC44ODEgNTEyLjE0NSAyMTcuNzIxIDUzNC40MDEgMjIyLjI0NUM1NTYuNjQ0IDIyNi43NTcgNTc5Ljg2NSAyMjYuNTA5IDYwNC4xMTUgMjIxLjU2N0M2MDkuNjQzIDIyMC42MTYgNjE1LjI2MyAyMTkuNDY4IDYyMC45MjEgMjE4LjA5OUM2MjYuNTY3IDIxNi43NTYgNjMyLjI3NyAyMTUuMTkyIDYzOC4wNTMgMjEzLjQxOUM2NTkuMDU3IDIwNy41MjUgNjc4LjU2MiAxOTkuMzkgNjk2LjU0MSAxODkuMDc3IiBmaWxsPSIjRjVGNUY3Ii8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMjgyMF82OTk5MSI+CjxyZWN0IHdpZHRoPSI3MjEiIGhlaWdodD0iMjU2Ljg0OCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K\");background-repeat:no-repeat}@media (min-width: 48em){/*!@.duet-hero.duet-hero-content.duet-theme-turva .background-mask*/.duet-hero.duet-hero-content.duet-theme-turva.sc-duet-hero .background-mask.sc-duet-hero{left:181px}}/*!@.duet-hero.duet-hero-content.duet-theme-turva .brand-shaped-image*/.duet-hero.duet-hero-content.duet-theme-turva.sc-duet-hero .brand-shaped-image.sc-duet-hero{top:-155px;right:0;left:0;width:420px;height:420px;margin:0 auto;border-radius:0;transform:none;-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");-webkit-mask-repeat:no-repeat;mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");mask-repeat:no-repeat}@media (min-width: 48em){/*!@.duet-hero.duet-hero-content.duet-theme-turva .brand-shaped-image*/.duet-hero.duet-hero-content.duet-theme-turva.sc-duet-hero .brand-shaped-image.sc-duet-hero{top:-230px;width:687px;height:637px}}/*!@.duet-hero.duet-hero-content.duet-theme-turva .brand-shaped-image .brand-shaped-image-bg*/.duet-hero.duet-hero-content.duet-theme-turva.sc-duet-hero .brand-shaped-image.sc-duet-hero .brand-shaped-image-bg.sc-duet-hero{width:600px;height:280px;transform:translate(-50%, 0)}@media (min-width: 48em){/*!@.duet-hero.duet-hero-content.duet-theme-turva .brand-shaped-image .brand-shaped-image-bg*/.duet-hero.duet-hero-content.duet-theme-turva.sc-duet-hero .brand-shaped-image.sc-duet-hero .brand-shaped-image-bg.sc-duet-hero{width:733px;height:413px}}/*!@.duet-hero.duet-theme-turva*/.duet-hero.duet-theme-turva.sc-duet-hero{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";background:rgb(198, 12, 48)}@media (min-width: 62em){/*!@.duet-hero*/.duet-hero.sc-duet-hero{min-height:290px;padding:111.6px 56px;overflow:visible}}/*!@.duet-hero-icon*/.duet-hero-icon.sc-duet-hero{display:inline-block;vertical-align:top}@media (min-width: 62em){/*!@.duet-hero-icon*/.duet-hero-icon.sc-duet-hero{margin-top:-8px}}@media (min-width: 62em){/*!@.duet-hero-heading*/.duet-hero-heading.sc-duet-hero{margin-top:12px}}@media (min-width: 62em){/*!@.duet-hero-heading-has-pre*/.duet-hero-heading-has-pre.sc-duet-hero{margin-top:0}}/*!@.duet-hero-wrapper*/.duet-hero-wrapper.sc-duet-hero{position:relative;width:100%;max-width:1110px;margin:0 auto;text-align:center}/*!@.duet-hero-left-align .duet-hero-wrapper*/.duet-hero-left-align.sc-duet-hero .duet-hero-wrapper.sc-duet-hero{text-align:left}/*!@.duet-hero-with-image .duet-hero-wrapper*/.duet-hero-with-image.sc-duet-hero .duet-hero-wrapper.sc-duet-hero{position:static}@media (min-width: 62em){/*!@.duet-hero-wrapper*/.duet-hero-wrapper.sc-duet-hero{text-align:left}}/*!@.duet-hero-text*/.duet-hero-text.sc-duet-hero{max-width:50rem;margin:0 auto}/*!@.duet-hero-text-center .duet-hero-text*/.duet-hero-text-center.sc-duet-hero .duet-hero-text.sc-duet-hero{text-align:center !important}@media (min-width: 48em){/*!@.duet-hero-text*/.duet-hero-text.sc-duet-hero{width:80%}/*!@.duet-hero-left-align .duet-hero-text*/.duet-hero-left-align.sc-duet-hero .duet-hero-text.sc-duet-hero{margin:0}}@media (min-width: 62em){/*!@.duet-hero-text*/.duet-hero-text.sc-duet-hero{width:52%;max-width:none;margin-top:-10px;margin-left:0}/*!@.duet-hero-text-center .duet-hero-text*/.duet-hero-text-center.sc-duet-hero .duet-hero-text.sc-duet-hero{margin-left:auto}}/*!@.duet-hero:not(.duet-hero-with-image) .duet-hero-image*/.duet-hero.sc-duet-hero:not(.duet-hero-with-image) .duet-hero-image.sc-duet-hero{width:100%;max-width:400px;height:0;padding-bottom:50%;margin:28px auto 0;background-repeat:no-repeat;background-position:50% 50%;background-size:contain}@media (min-width: 36em){/*!@.duet-hero:not(.duet-hero-with-image) .duet-hero-image*/.duet-hero.sc-duet-hero:not(.duet-hero-with-image) .duet-hero-image.sc-duet-hero{padding-bottom:40%}}@media (min-width: 48em){/*!@.duet-hero:not(.duet-hero-with-image) .duet-hero-image*/.duet-hero.sc-duet-hero:not(.duet-hero-with-image) .duet-hero-image.sc-duet-hero{max-width:420px;padding-bottom:34%}/*!@.duet-hero-light .duet-hero:not(.duet-hero-with-image) .duet-hero-image*/.duet-hero-light.sc-duet-hero .duet-hero.sc-duet-hero:not(.duet-hero-with-image) .duet-hero-image.sc-duet-hero{max-width:540px}}@media (min-width: 62em){/*!@.duet-hero:not(.duet-hero-with-image) .duet-hero-image*/.duet-hero.sc-duet-hero:not(.duet-hero-with-image) .duet-hero-image.sc-duet-hero{position:absolute;top:50%;right:0;padding-bottom:30%;margin:0;transform:translateY(-50%)}/*!@.duet-hero-light .duet-hero:not(.duet-hero-with-image) .duet-hero-image*/.duet-hero-light.sc-duet-hero .duet-hero.sc-duet-hero:not(.duet-hero-with-image) .duet-hero-image.sc-duet-hero{right:-60px;padding-bottom:26%}/*!@.duet-hero-gray .duet-hero:not(.duet-hero-with-image) .duet-hero-image*/.duet-hero-gray.sc-duet-hero .duet-hero.sc-duet-hero:not(.duet-hero-with-image) .duet-hero-image.sc-duet-hero{right:-34px;padding-bottom:20%}}@media (min-width: 62em){/*!@.duet-hero-gray:not(.duet-hero-with-image) .duet-hero-image*/.duet-hero-gray.sc-duet-hero:not(.duet-hero-with-image) .duet-hero-image.sc-duet-hero{right:-34px;padding-bottom:20%}}/*!@.duet-hero-image-wrapper*/.duet-hero-image-wrapper.sc-duet-hero{position:relative;width:80%;height:0;padding-bottom:80%;margin:-30px auto 36px;overflow:hidden;border-radius:28%;box-shadow:0 0 20px rgba(255, 255, 255, 0.5);transform:rotate(10deg)}/*!@.duet-theme-turva .duet-hero-image-wrapper*/.duet-theme-turva.sc-duet-hero .duet-hero-image-wrapper.sc-duet-hero{padding-bottom:68%;border-radius:44% 47% 38% 54%;transform:none}@media screen and (min-width: 440px){/*!@.duet-hero-image-wrapper*/.duet-hero-image-wrapper.sc-duet-hero{width:300px;padding-bottom:300px}/*!@.duet-theme-turva .duet-hero-image-wrapper*/.duet-theme-turva.sc-duet-hero .duet-hero-image-wrapper.sc-duet-hero{width:80%;padding-bottom:68%}}@media (min-width: 62em){/*!@.duet-hero-image-wrapper*/.duet-hero-image-wrapper.sc-duet-hero{position:absolute;top:-60px;right:-50px;width:470px;padding-bottom:470px;margin:0}/*!@.duet-theme-turva .duet-hero-image-wrapper*/.duet-theme-turva.sc-duet-hero .duet-hero-image-wrapper.sc-duet-hero{top:-40px;right:-80px;width:536px;padding-bottom:470px}}@media (min-width: 76.25em){/*!@.duet-hero-image-wrapper*/.duet-hero-image-wrapper.sc-duet-hero{top:-70px;right:-60px;width:600px;padding-bottom:600px}/*!@.duet-theme-turva .duet-hero-image-wrapper*/.duet-theme-turva.sc-duet-hero .duet-hero-image-wrapper.sc-duet-hero{top:-70px;right:-60px;width:650px;padding-bottom:600px}}@media screen and (min-width: 1450px){/*!@.duet-hero-image-wrapper*/.duet-hero-image-wrapper.sc-duet-hero{top:-70px;right:25px}/*!@.duet-theme-turva .duet-hero-image-wrapper*/.duet-theme-turva.sc-duet-hero .duet-hero-image-wrapper.sc-duet-hero{right:0}}/*!@.duet-hero-image-wrapper .duet-hero-image*/.duet-hero-image-wrapper.sc-duet-hero .duet-hero-image.sc-duet-hero{position:absolute;top:-5%;left:-5%;width:110%;height:110%;background-repeat:no-repeat;background-position:50% 50%;background-size:cover;transform:rotate(-10deg)}/*!@.duet-theme-turva .duet-hero-image-wrapper .duet-hero-image*/.duet-theme-turva.sc-duet-hero .duet-hero-image-wrapper.sc-duet-hero .duet-hero-image.sc-duet-hero{top:0;left:0;width:100%;height:100%;transform:none}/*!@.duet-hero-image-mask*/.duet-hero-image-mask.sc-duet-hero{position:relative;margin:-48px auto 0;overflow:hidden}@media (min-width: 62em){/*!@.duet-hero-image-mask*/.duet-hero-image-mask.sc-duet-hero{position:absolute;top:0;right:0;width:470px;height:460px;margin:0}}@media (min-width: 76.25em){/*!@.duet-hero-image-mask*/.duet-hero-image-mask.sc-duet-hero{width:650px;height:580px}}@media screen and (min-width: 1450px){/*!@.duet-hero-image-mask*/.duet-hero-image-mask.sc-duet-hero{right:50%;transform:translateX(110%)}/*!@.duet-theme-turva .duet-hero-image-mask*/.duet-theme-turva.sc-duet-hero .duet-hero-image-mask.sc-duet-hero{transform:translateX(108%)}}/*!@duet-heading + duet-button*/duet-heading.sc-duet-hero+duet-button.sc-duet-hero{margin-top:12px !important}/*!@.duet-hero-links*/.duet-hero-links.sc-duet-hero{width:calc(100% + 56px);margin-top:48px;margin-left:-28px}/*!@.duet-hero-minimal .duet-hero-links*/.duet-hero-minimal.sc-duet-hero .duet-hero-links.sc-duet-hero{margin-top:28px}@media (min-width: 36em){/*!@.duet-hero-links*/.duet-hero-links.sc-duet-hero{margin-top:72px}/*!@.duet-hero-minimal .duet-hero-links*/.duet-hero-minimal.sc-duet-hero .duet-hero-links.sc-duet-hero{margin-top:28px}}@media (min-width: 62em){/*!@.duet-hero-links*/.duet-hero-links.sc-duet-hero{width:auto;margin:36px 0 0}/*!@.duet-hero-minimal .duet-hero-links*/.duet-hero-minimal.sc-duet-hero .duet-hero-links.sc-duet-hero{margin-top:28px}}/*!@.duet-hero-link*/.duet-hero-link.sc-duet-hero{display:flex;align-items:center;width:100%;padding:16px 16px 8px;font-weight:600;-webkit-hyphens:auto;hyphens:auto;line-height:1.25;color:rgb(0, 119, 179);text-align:left;text-decoration:none;border-bottom:1px solid rgb(225, 227, 230);transition:background-color 300ms ease}/*!@.duet-hero-link:focus*/.duet-hero-link.sc-duet-hero:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179)}/*!@.duet-theme-turva .duet-hero-link:focus, .duet-hero-link:focus.duet-theme-turva*/.duet-theme-turva.sc-duet-hero .duet-hero-link.sc-duet-hero:focus,.duet-hero-link.sc-duet-hero:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58)}/*!@.duet-hero-link:hover, .duet-hero-link:hover .duet-hero-action-arrow*/.duet-hero-link.sc-duet-hero:hover,.duet-hero-link.sc-duet-hero:hover .duet-hero-action-arrow.sc-duet-hero{color:rgb(0, 77, 128) !important;background:transparent !important}/*!@.duet-theme-turva .duet-hero-link:hover, .duet-theme-turva .duet-hero-link:hover .duet-hero-action-arrow*/.duet-theme-turva.sc-duet-hero .duet-hero-link.sc-duet-hero:hover,.duet-theme-turva.sc-duet-hero .duet-hero-link.sc-duet-hero:hover .duet-hero-action-arrow.sc-duet-hero{color:rgb(148, 9, 37) !important}/*!@.duet-theme-turva .duet-hero-link*/.duet-theme-turva.sc-duet-hero .duet-hero-link.sc-duet-hero{color:rgb(198, 12, 48)}@media (min-width: 36em){/*!@.duet-hero-link*/.duet-hero-link.sc-duet-hero{padding:16px 16px 16px 28px}}@media (min-width: 62em){/*!@.duet-hero-link*/.duet-hero-link.sc-duet-hero{display:inline-flex;width:auto;max-width:350px;padding:0;margin:0 28px 16px 0;border:0;border-radius:4px}}/*!@.duet-hero-link:hover*/.duet-hero-link.sc-duet-hero:hover{background:rgba(0, 0, 0, 0.02)}@media (min-width: 62em){/*!@.duet-hero-link:hover*/.duet-hero-link.sc-duet-hero:hover{background:transparent}}/*!@.duet-hero-link:first-of-type*/.duet-hero-link.sc-duet-hero:first-of-type{border-top:1px solid rgb(225, 227, 230)}@media (min-width: 62em){/*!@.duet-hero-link:first-of-type*/.duet-hero-link.sc-duet-hero:first-of-type{margin-top:0;border:0}}/*!@.duet-hero-link:last-of-type*/.duet-hero-link.sc-duet-hero:last-of-type{margin-bottom:-48px}@media (min-width: 62em){/*!@.duet-hero-link:last-of-type*/.duet-hero-link.sc-duet-hero:last-of-type{margin-right:0;margin-bottom:0}}/*!@.duet-hero-link span*/.duet-hero-link.sc-duet-hero span.sc-duet-hero{margin-top:-8px}@media (min-width: 36em){/*!@.duet-hero-link span*/.duet-hero-link.sc-duet-hero span.sc-duet-hero{margin:0}}/*!@.duet-hero-action-icon*/.duet-hero-action-icon.sc-duet-hero{margin-right:8px}@media (min-width: 36em){/*!@.duet-hero-action-icon*/.duet-hero-action-icon.sc-duet-hero{margin-right:12px}}/*!@.duet-hero-action-arrow*/.duet-hero-action-arrow.sc-duet-hero{margin:0 0 0 8px;color:rgb(0, 119, 179)}@media (max-width: 35.9375em){/*!@.duet-hero-action-arrow*/.duet-hero-action-arrow.sc-duet-hero{margin-top:-9px}}/*!@.duet-theme-turva .duet-hero-action-arrow*/.duet-theme-turva.sc-duet-hero .duet-hero-action-arrow.sc-duet-hero{color:rgb(198, 12, 48)}/*!@.duet-hero-back*/.duet-hero-back.sc-duet-hero{margin-bottom:28px !important;display:flex;align-items:center;justify-content:center}/*!@.duet-hero-left-align .duet-hero-back*/.duet-hero-left-align.sc-duet-hero .duet-hero-back.sc-duet-hero{align-items:self-start;justify-content:flex-start}@media (min-width: 36em){/*!@.duet-hero-back*/.duet-hero-back.sc-duet-hero{margin-bottom:36px !important}/*!@.duet-hero-minimal .duet-hero-back*/.duet-hero-minimal.sc-duet-hero .duet-hero-back.sc-duet-hero{margin-bottom:28px !important}}@media (min-width: 62em){/*!@.duet-hero-back*/.duet-hero-back.sc-duet-hero{display:block}}/*!@.duet-hero-pre*/.duet-hero-pre.sc-duet-hero{display:inline-block;width:auto;margin-right:8px}/*!@.duet-hero-pre + duet-heading*/.duet-hero-pre.sc-duet-hero+duet-heading.sc-duet-hero{margin-top:0 !important}";
11548
+ const duetHeroCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-hero,*.sc-duet-hero::after,*.sc-duet-hero::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-hero-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}/*!@.duet-hero*/.duet-hero.sc-duet-hero{position:relative;display:block;width:100%;padding:48px 28px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-style:normal;font-weight:400;line-height:1.5;text-decoration:none;text-shadow:none;text-transform:none;background:rgb(0, 41, 77)}/*!@.duet-hero.duet-p-0*/.duet-hero.duet-p-0.sc-duet-hero{padding:0 !important}/*!@.duet-hero.duet-m-0*/.duet-hero.duet-m-0.sc-duet-hero{margin:0 !important}/*!@.duet-hero.duet-hero-text-center*/.duet-hero.duet-hero-text-center.sc-duet-hero{text-align:center !important}/*!@.duet-hero.duet-hero-light*/.duet-hero.duet-hero-light.sc-duet-hero{padding-bottom:0 !important}@media (min-width: 62em){/*!@.duet-hero.duet-hero-light*/.duet-hero.duet-hero-light.sc-duet-hero{padding-bottom:28px !important}}/*!@.duet-hero.duet-hero-with-image*/.duet-hero.duet-hero-with-image.sc-duet-hero{padding-bottom:20px !important;margin-bottom:-36px}@media (min-width: 48em){/*!@.duet-hero.duet-hero-with-image*/.duet-hero.duet-hero-with-image.sc-duet-hero{padding-bottom:28px !important}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-with-image*/.duet-hero.duet-hero-with-image.sc-duet-hero{padding-bottom:36px !important;margin-bottom:-20px}}/*!@.duet-hero.duet-hero-light, .duet-hero.duet-hero-with-image*/.duet-hero.duet-hero-light.sc-duet-hero,.duet-hero.duet-hero-with-image.sc-duet-hero{color:rgb(0, 41, 77);background-color:rgb(255, 255, 255);background-image:linear-gradient(rgb(243, 249, 252), #f9fcfe)}/*!@.duet-hero.duet-hero-light::before, .duet-hero.duet-hero-with-image::before*/.duet-hero.duet-hero-light.sc-duet-hero::before,.duet-hero.duet-hero-with-image.sc-duet-hero::before{position:absolute;top:100%;left:0;z-index:-1;width:100%;height:400px;content:\"\";background-image:linear-gradient(#f9fcfe, rgb(255, 255, 255))}/*!@.duet-hero.duet-hero-light.duet-theme-turva, .duet-hero.duet-hero-with-image.duet-theme-turva*/.duet-hero.duet-hero-light.duet-theme-turva.sc-duet-hero,.duet-hero.duet-hero-with-image.duet-theme-turva.sc-duet-hero{color:rgb(23, 28, 58);background-image:linear-gradient(rgb(245, 245, 247), #fafafb)}/*!@.duet-hero.duet-hero-light.duet-theme-turva::before, .duet-hero.duet-hero-with-image.duet-theme-turva::before*/.duet-hero.duet-hero-light.duet-theme-turva.sc-duet-hero::before,.duet-hero.duet-hero-with-image.duet-theme-turva.sc-duet-hero::before{background-image:linear-gradient(#fafafb, rgb(255, 255, 255))}/*!@.duet-hero.duet-hero-gray*/.duet-hero.duet-hero-gray.sc-duet-hero{color:rgb(0, 41, 77);background:rgb(245, 248, 250)}/*!@.duet-hero.duet-hero-gray.duet-theme-turva*/.duet-hero.duet-hero-gray.duet-theme-turva.sc-duet-hero{background:rgb(245, 245, 247)}@media (min-width: 62em){/*!@.duet-hero.duet-hero-gray .duet-hero-text*/.duet-hero.duet-hero-gray.sc-duet-hero .duet-hero-text.sc-duet-hero{display:inline-block;vertical-align:top}/*!@.duet-hero.duet-hero-gray .duet-hero-icon + .duet-hero-text*/.duet-hero.duet-hero-gray.sc-duet-hero .duet-hero-icon.sc-duet-hero+.duet-hero-text.sc-duet-hero{margin-left:28px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-gray-with-actions*/.duet-hero.duet-hero-gray-with-actions.sc-duet-hero{padding-bottom:65.4545454545px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-gray-with-back*/.duet-hero.duet-hero-gray-with-back.sc-duet-hero{padding-top:72px}}/*!@.duet-hero.duet-hero-campaign, .duet-hero.duet-hero-section*/.duet-hero.duet-hero-campaign.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero{padding:0 0 48px;margin:0;background:none}/*!@.duet-hero.duet-hero-campaign .background-area, .duet-hero.duet-hero-section .background-area*/.duet-hero.duet-hero-campaign.sc-duet-hero .background-area.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background-area.sc-duet-hero{height:1px;margin-bottom:-1px}/*!@.duet-hero.duet-hero-campaign .background-container, .duet-hero.duet-hero-section .background-container*/.duet-hero.duet-hero-campaign.sc-duet-hero .background-container.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background-container.sc-duet-hero{position:absolute;right:0;left:0;display:grid;align-items:flex-start;justify-content:center;overflow:hidden}/*!@.duet-hero.duet-hero-campaign .background, .duet-hero.duet-hero-section .background*/.duet-hero.duet-hero-campaign.sc-duet-hero .background.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero{display:flex;align-items:flex-start;justify-content:center;height:220px;margin:0 auto}/*!@.duet-hero.duet-hero-campaign .background img, .duet-hero.duet-hero-section .background img*/.duet-hero.duet-hero-campaign.sc-duet-hero .background.sc-duet-hero img.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero img.sc-duet-hero{height:100%}@media (min-width: 1440px){/*!@.duet-hero.duet-hero-campaign .background img, .duet-hero.duet-hero-section .background img*/.duet-hero.duet-hero-campaign.sc-duet-hero .background.sc-duet-hero img.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero img.sc-duet-hero{width:100%;height:auto}}@media (min-width: 36em){/*!@.duet-hero.duet-hero-campaign .background, .duet-hero.duet-hero-section .background*/.duet-hero.duet-hero-campaign.sc-duet-hero .background.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero{height:300px}}@media (min-width: 48em){/*!@.duet-hero.duet-hero-campaign .background, .duet-hero.duet-hero-section .background*/.duet-hero.duet-hero-campaign.sc-duet-hero .background.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero{height:450px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-campaign .background, .duet-hero.duet-hero-section .background*/.duet-hero.duet-hero-campaign.sc-duet-hero .background.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero{height:500px}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-campaign .background, .duet-hero.duet-hero-section .background*/.duet-hero.duet-hero-campaign.sc-duet-hero .background.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero{height:580px}}@media (min-width: 1600px){/*!@.duet-hero.duet-hero-campaign .background, .duet-hero.duet-hero-section .background*/.duet-hero.duet-hero-campaign.sc-duet-hero .background.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero{width:1600px;overflow:hidden}}/*!@.duet-hero.duet-hero-campaign .background .brand-container, .duet-hero.duet-hero-section .background .brand-container*/.duet-hero.duet-hero-campaign.sc-duet-hero .background.sc-duet-hero .brand-container.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero .brand-container.sc-duet-hero{position:relative;width:100%;height:100%;min-height:220px;overflow:hidden}/*!@.duet-hero.duet-hero-campaign .background .brand, .duet-hero.duet-hero-section .background .brand*/.duet-hero.duet-hero-campaign.sc-duet-hero .background.sc-duet-hero .brand.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero .brand.sc-duet-hero{position:absolute;width:100%;height:220px;background-repeat:no-repeat;background-position:center center;background-size:cover}@media (min-width: 36em){/*!@.duet-hero.duet-hero-campaign .background .brand, .duet-hero.duet-hero-section .background .brand*/.duet-hero.duet-hero-campaign.sc-duet-hero .background.sc-duet-hero .brand.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero .brand.sc-duet-hero{left:-200px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-campaign .background .brand, .duet-hero.duet-hero-section .background .brand*/.duet-hero.duet-hero-campaign.sc-duet-hero .background.sc-duet-hero .brand.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero .brand.sc-duet-hero{left:auto;height:1100px;background-position:140% -200%}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-campaign .background .brand, .duet-hero.duet-hero-section .background .brand*/.duet-hero.duet-hero-campaign.sc-duet-hero .background.sc-duet-hero .brand.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero .brand.sc-duet-hero{background-position:right -200%}}/*!@.duet-hero.duet-hero-campaign .brand-shape, .duet-hero.duet-hero-section .brand-shape*/.duet-hero.duet-hero-campaign.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .brand-shape.sc-duet-hero{position:absolute;top:143px;right:0;left:-30px;width:340px;height:340px;margin-right:auto;margin-left:auto;background:rgb(255, 255, 255);border-radius:20%;mix-blend-mode:normal;transform:rotate(8deg)}@media (min-width: 22.5em){/*!@.duet-hero.duet-hero-campaign .brand-shape, .duet-hero.duet-hero-section .brand-shape*/.duet-hero.duet-hero-campaign.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .brand-shape.sc-duet-hero{top:160px;width:450px;height:450px}}@media (min-width: 36em){/*!@.duet-hero.duet-hero-campaign .brand-shape, .duet-hero.duet-hero-section .brand-shape*/.duet-hero.duet-hero-campaign.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .brand-shape.sc-duet-hero{top:215px;left:-50px;width:550px;height:550px}}@media (min-width: 48em){/*!@.duet-hero.duet-hero-campaign .brand-shape, .duet-hero.duet-hero-section .brand-shape*/.duet-hero.duet-hero-campaign.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .brand-shape.sc-duet-hero{top:250px;left:0;width:712.18px;height:712.18px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-campaign .brand-shape, .duet-hero.duet-hero-section .brand-shape*/.duet-hero.duet-hero-campaign.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .brand-shape.sc-duet-hero{top:240px}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-campaign .brand-shape, .duet-hero.duet-hero-section .brand-shape*/.duet-hero.duet-hero-campaign.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .brand-shape.sc-duet-hero{top:280px}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-campaign .brand-shape, .duet-hero.duet-hero-section .brand-shape*/.duet-hero.duet-hero-campaign.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .brand-shape.sc-duet-hero{top:310px}}/*!@.duet-hero.duet-hero-campaign .duet-hero-text, .duet-hero.duet-hero-section .duet-hero-text*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero{width:100%}/*!@.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-heading::part(duet-heading), .duet-hero.duet-hero-section .duet-hero-text .duet-hero-heading::part(duet-heading)*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-heading.sc-duet-hero::part(duet-heading),.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-heading.sc-duet-hero::part(duet-heading){font-size:36px}@media (min-width: 36em){/*!@.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-heading::part(duet-heading), .duet-hero.duet-hero-section .duet-hero-text .duet-hero-heading::part(duet-heading)*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-heading.sc-duet-hero::part(duet-heading),.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-heading.sc-duet-hero::part(duet-heading){font-size:48px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-heading::part(duet-heading), .duet-hero.duet-hero-section .duet-hero-text .duet-hero-heading::part(duet-heading)*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-heading.sc-duet-hero::part(duet-heading),.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-heading.sc-duet-hero::part(duet-heading){font-size:64px}}/*!@.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-subheading,\n.duet-hero.duet-hero-campaign .duet-hero-text duet-paragraph, .duet-hero.duet-hero-section .duet-hero-text .duet-hero-subheading,\n.duet-hero.duet-hero-section .duet-hero-text duet-paragraph*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-subheading.sc-duet-hero,.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero duet-paragraph.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-subheading.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero duet-paragraph.sc-duet-hero{margin:0 auto}@media (min-width: 22.5em){/*!@.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-subheading,\n .duet-hero.duet-hero-campaign .duet-hero-text duet-paragraph, .duet-hero.duet-hero-section .duet-hero-text .duet-hero-subheading,\n .duet-hero.duet-hero-section .duet-hero-text duet-paragraph*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-subheading.sc-duet-hero,.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero duet-paragraph.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-subheading.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero duet-paragraph.sc-duet-hero{width:90%}}@media (min-width: 25em){/*!@.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-subheading,\n .duet-hero.duet-hero-campaign .duet-hero-text duet-paragraph, .duet-hero.duet-hero-section .duet-hero-text .duet-hero-subheading,\n .duet-hero.duet-hero-section .duet-hero-text duet-paragraph*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-subheading.sc-duet-hero,.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero duet-paragraph.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-subheading.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero duet-paragraph.sc-duet-hero{width:80%}}@media (min-width: 30em){/*!@.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-subheading,\n .duet-hero.duet-hero-campaign .duet-hero-text duet-paragraph, .duet-hero.duet-hero-section .duet-hero-text .duet-hero-subheading,\n .duet-hero.duet-hero-section .duet-hero-text duet-paragraph*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-subheading.sc-duet-hero,.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero duet-paragraph.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-subheading.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero duet-paragraph.sc-duet-hero{width:70%}}@media (min-width: 36em){/*!@.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-subheading,\n .duet-hero.duet-hero-campaign .duet-hero-text duet-paragraph, .duet-hero.duet-hero-section .duet-hero-text .duet-hero-subheading,\n .duet-hero.duet-hero-section .duet-hero-text duet-paragraph*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-subheading.sc-duet-hero,.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero duet-paragraph.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-subheading.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero duet-paragraph.sc-duet-hero{width:70%}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-subheading,\n .duet-hero.duet-hero-campaign .duet-hero-text duet-paragraph, .duet-hero.duet-hero-section .duet-hero-text .duet-hero-subheading,\n .duet-hero.duet-hero-section .duet-hero-text duet-paragraph*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-subheading.sc-duet-hero,.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-text.sc-duet-hero duet-paragraph.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-subheading.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-text.sc-duet-hero duet-paragraph.sc-duet-hero{width:52%}}/*!@.duet-hero.duet-hero-campaign .duet-hero-heading, .duet-hero.duet-hero-section .duet-hero-heading*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-heading.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-heading.sc-duet-hero{display:flex;align-items:center;height:6rem;padding:0 1rem;margin:1rem 0 4.5rem}@media (min-width: 22.5em){/*!@.duet-hero.duet-hero-campaign .duet-hero-heading, .duet-hero.duet-hero-section .duet-hero-heading*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-heading.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin:2rem 0 4rem}}@media (min-width: 36em){/*!@.duet-hero.duet-hero-campaign .duet-hero-heading, .duet-hero.duet-hero-section .duet-hero-heading*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-heading.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin:3rem 0 8rem}}@media (min-width: 48em){/*!@.duet-hero.duet-hero-campaign .duet-hero-heading, .duet-hero.duet-hero-section .duet-hero-heading*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-heading.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin:4rem 0 10rem}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-campaign .duet-hero-heading, .duet-hero.duet-hero-section .duet-hero-heading*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-heading.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin:5rem 0 10rem}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-campaign .duet-hero-heading, .duet-hero.duet-hero-section .duet-hero-heading*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-heading.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin:6rem 0 10rem}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-campaign .duet-hero-heading, .duet-hero.duet-hero-section .duet-hero-heading*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-heading.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin:8rem 0 11rem}}/*!@.duet-hero.duet-hero-campaign .duet-hero-wrapper.fluid, .duet-hero.duet-hero-campaign .duet-hero-wrapper.narrow, .duet-hero.duet-hero-section .duet-hero-wrapper.fluid, .duet-hero.duet-hero-section .duet-hero-wrapper.narrow*/.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-wrapper.fluid.sc-duet-hero,.duet-hero.duet-hero-campaign.sc-duet-hero .duet-hero-wrapper.narrow.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-wrapper.fluid.sc-duet-hero,.duet-hero.duet-hero-section.sc-duet-hero .duet-hero-wrapper.narrow.sc-duet-hero{padding:0 16px}/*!@.duet-hero.duet-hero-campaign.duet-theme-turva, .duet-hero.duet-hero-section.duet-theme-turva*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";background:none}/*!@.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape, .duet-hero.duet-hero-section.duet-theme-turva .brand-shape*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero{top:125px;left:-10px;width:350px;height:350px;background:rgb(255, 255, 255);transform:none;-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");-webkit-mask-repeat:no-repeat;mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");mask-repeat:no-repeat}@media (min-width: 22.5em){/*!@.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape, .duet-hero.duet-hero-section.duet-theme-turva .brand-shape*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero{top:143px;left:-30px;width:450px;height:450px}}@media (min-width: 36em){/*!@.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape, .duet-hero.duet-hero-section.duet-theme-turva .brand-shape*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero{top:180px;left:0;width:550px;height:550px}}@media (min-width: 48em){/*!@.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape, .duet-hero.duet-hero-section.duet-theme-turva .brand-shape*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero{top:220px;width:712.18px;height:712.18px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape, .duet-hero.duet-hero-section.duet-theme-turva .brand-shape*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero{top:230px}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape, .duet-hero.duet-hero-section.duet-theme-turva .brand-shape*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero{top:260px}}@media (min-width: 106.25em){/*!@.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape, .duet-hero.duet-hero-section.duet-theme-turva .brand-shape*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero .brand-shape.sc-duet-hero{top:290px}}@media (min-width: 22.5em){/*!@.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-heading, .duet-hero.duet-hero-section.duet-theme-turva .duet-hero-heading*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero .duet-hero-heading.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin:2rem 0 5rem}}@media (min-width: 36em){/*!@.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-heading, .duet-hero.duet-hero-section.duet-theme-turva .duet-hero-heading*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero .duet-hero-heading.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin:3rem 0 8rem}}@media (min-width: 48em){/*!@.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-heading, .duet-hero.duet-hero-section.duet-theme-turva .duet-hero-heading*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero .duet-hero-heading.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin:4rem 0 10rem}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-heading, .duet-hero.duet-hero-section.duet-theme-turva .duet-hero-heading*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero .duet-hero-heading.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin:5rem 0 10rem}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-heading, .duet-hero.duet-hero-section.duet-theme-turva .duet-hero-heading*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero .duet-hero-heading.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin:6rem 0 12rem}}@media (min-width: 106.25em){/*!@.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-heading, .duet-hero.duet-hero-section.duet-theme-turva .duet-hero-heading*/.duet-hero.duet-hero-campaign.duet-theme-turva.sc-duet-hero .duet-hero-heading.sc-duet-hero,.duet-hero.duet-hero-section.duet-theme-turva.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin:8rem 0 13rem}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-section .background img*/.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero img.sc-duet-hero{width:100%;height:auto}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-section .background*/.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero{width:1400px;height:436px;overflow:hidden}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-section .background*/.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero{width:1536px;height:516px}}@media (min-width: 106.25em){/*!@.duet-hero.duet-hero-section .background*/.duet-hero.duet-hero-section.sc-duet-hero .background.sc-duet-hero{width:1536px}}/*!@.duet-hero.duet-hero-product*/.duet-hero.duet-hero-product.sc-duet-hero{position:relative;padding:0 0 48px;padding-top:236px;margin:0;background:rgb(255, 255, 255)}@media (min-width: 48em){/*!@.duet-hero.duet-hero-product*/.duet-hero.duet-hero-product.sc-duet-hero{padding-top:250px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product*/.duet-hero.duet-hero-product.sc-duet-hero{min-height:375px;padding-top:0}/*!@.duet-hero.duet-hero-product.duet-hero-narrow*/.duet-hero.duet-hero-product.duet-hero-narrow.sc-duet-hero{padding-top:200px}}/*!@.duet-hero.duet-hero-product .background-area*/.duet-hero.duet-hero-product.sc-duet-hero .background-area.sc-duet-hero{position:absolute;top:0;width:100%;height:600px;overflow:hidden}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .background-area*/.duet-hero.duet-hero-product.sc-duet-hero .background-area.sc-duet-hero{top:-112px}/*!@.duet-hero.duet-hero-product .background-area.narrow*/.duet-hero.duet-hero-product.sc-duet-hero .background-area.narrow.sc-duet-hero{top:0}}/*!@.duet-hero.duet-hero-product .background-container*/.duet-hero.duet-hero-product.sc-duet-hero .background-container.sc-duet-hero{position:absolute;top:-150px;width:100%;height:600px;overflow:hidden}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .background-container*/.duet-hero.duet-hero-product.sc-duet-hero .background-container.sc-duet-hero{top:-48px}/*!@.duet-hero.duet-hero-product .background-container.narrow*/.duet-hero.duet-hero-product.sc-duet-hero .background-container.narrow.sc-duet-hero{top:-160px}}/*!@.duet-hero.duet-hero-product .background*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero{position:absolute;top:145px;width:100%;overflow:visible}/*!@.duet-hero.duet-hero-product .background .background-mask*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .background-mask.sc-duet-hero{display:none}@media (min-width: 48em){/*!@.duet-hero.duet-hero-product .background*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero{top:130px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .background*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero{top:35px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .background.narrow*/.duet-hero.duet-hero-product.sc-duet-hero .background.narrow.sc-duet-hero{top:140px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .background:not(.narrow)*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero:not(.narrow){position:absolute;right:0;left:0;max-width:1440px;height:100%;margin:0 auto}}/*!@.duet-hero.duet-hero-product .background .brand-shaped-image*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero{position:absolute;top:-160px;right:-15%;z-index:0;width:375px;height:375px;overflow:hidden;border-radius:20%;transform:rotate(7deg)}@media (min-width: 36em){/*!@.duet-hero.duet-hero-product .background .brand-shaped-image*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero{right:15%}}@media (min-width: 48em){/*!@.duet-hero.duet-hero-product .background .brand-shaped-image*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero{top:-210px;width:485px;height:485px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .background .brand-shaped-image:not(.narrow)*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero:not(.narrow){top:-353px;right:-128.15px;width:520px;height:736px}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-product .background .brand-shaped-image:not(.narrow)*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero:not(.narrow){width:736px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .background .brand-shaped-image.narrow*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.narrow.sc-duet-hero{right:30%}}/*!@.duet-hero.duet-hero-product .background .brand-shaped-image .brand-shaped-image-wrapper*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero .brand-shaped-image-wrapper.sc-duet-hero{position:relative;width:100%;height:100%}/*!@.duet-hero.duet-hero-product .background .brand-shaped-image .brand-shaped-image-bg*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero .brand-shaped-image-bg.sc-duet-hero{position:absolute;bottom:0;left:50%;z-index:1;width:600px;height:256px;background-repeat:no-repeat;background-size:100%;transform:rotate(-7deg) translate(-50%, 0)}@media (min-width: 48em){/*!@.duet-hero.duet-hero-product .background .brand-shaped-image .brand-shaped-image-bg*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero .brand-shaped-image-bg.sc-duet-hero{width:600px;height:320px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .background .brand-shaped-image .brand-shaped-image-bg:not(.narrow)*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero .brand-shaped-image-bg.sc-duet-hero:not(.narrow){width:800px;height:470px}}/*!@.duet-hero.duet-hero-product .background .brand-shape*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shape.sc-duet-hero{position:absolute;top:-20px;right:50%;width:240px;height:240px;background:rgb(230, 242, 248);border-radius:25%;mix-blend-mode:normal;transform:rotate(7deg)}@media (min-width: 48em){/*!@.duet-hero.duet-hero-product .background .brand-shape*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shape.sc-duet-hero{top:-60px;width:340px;height:340px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .background .brand-shape:not(.narrow)*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shape.sc-duet-hero:not(.narrow){top:auto;top:79px;right:200px;width:380px;height:380px}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-product .background .brand-shape:not(.narrow)*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shape.sc-duet-hero:not(.narrow){right:414px;width:400px;height:400px}}/*!@.duet-hero.duet-hero-product .background .brand-shaped-icon*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-icon.sc-duet-hero{position:absolute;top:160px;right:15%;display:flex;align-items:center;justify-content:center;width:85px;height:85px;background:rgba(0, 119, 179, 0.75);border-radius:25%;mix-blend-mode:normal;transform:rotate(7deg)}@media (min-width: 48em){/*!@.duet-hero.duet-hero-product .background .brand-shaped-icon*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-icon.sc-duet-hero{top:180px;width:120px;height:120px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .background .brand-shaped-icon:not(.narrow)*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-icon.sc-duet-hero:not(.narrow){top:292px;right:220px;width:150px;height:150px}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-product .background .brand-shaped-icon:not(.narrow)*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-icon.sc-duet-hero:not(.narrow){top:292px;right:220px;width:186px;height:186px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .background .brand-shaped-icon.narrow*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-icon.narrow.sc-duet-hero{right:35%}}/*!@.duet-hero.duet-hero-product .background .brand-shaped-icon duet-icon*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-icon.sc-duet-hero duet-icon.sc-duet-hero{width:80px;height:80px;transform:rotate(-7deg)}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .background .brand-shaped-icon duet-icon:not(.narrow)*/.duet-hero.duet-hero-product.sc-duet-hero .background.sc-duet-hero .brand-shaped-icon.sc-duet-hero duet-icon.sc-duet-hero:not(.narrow){width:120px;height:120px}}/*!@.duet-hero.duet-hero-product .duet-hero-wrapper*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.sc-duet-hero{max-width:100%;margin:0 auto}/*!@.duet-hero.duet-hero-product .duet-hero-wrapper .duet-hero-text*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.sc-duet-hero .duet-hero-text.sc-duet-hero{margin-top:0}/*!@.duet-hero.duet-hero-product .duet-hero-wrapper .duet-hero-heading*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin-top:1rem}@media (min-width: 48em){/*!@.duet-hero.duet-hero-product .duet-hero-wrapper .duet-hero-heading*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin-top:2rem}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .duet-hero-wrapper .duet-hero-heading*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin-top:7rem}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-product .duet-hero-wrapper .duet-hero-heading*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.sc-duet-hero .duet-hero-heading.sc-duet-hero{margin-top:7rem}}/*!@.duet-hero.duet-hero-product .duet-hero-wrapper.fluid, .duet-hero.duet-hero-product .duet-hero-wrapper.narrow*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.fluid.sc-duet-hero,.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.narrow.sc-duet-hero{padding:0 16px}@media (min-width: 36em){/*!@.duet-hero.duet-hero-product .duet-hero-wrapper.fluid*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.fluid.sc-duet-hero{padding:0 28px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .duet-hero-wrapper.fluid*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.fluid.sc-duet-hero{padding:0 56px}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-product .duet-hero-wrapper.fluid*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.fluid.sc-duet-hero{max-width:1110px;padding:0}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .duet-hero-wrapper.fluid .duet-hero-text*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.fluid.sc-duet-hero .duet-hero-text.sc-duet-hero{width:50%}}/*!@.duet-hero.duet-hero-product .duet-hero-wrapper.narrow*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.narrow.sc-duet-hero{max-width:888px}@media (min-width: 36em){/*!@.duet-hero.duet-hero-product .duet-hero-wrapper.narrow*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.narrow.sc-duet-hero{padding:0 48px}}@media (min-width: 48em){/*!@.duet-hero.duet-hero-product .duet-hero-wrapper.narrow*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.narrow.sc-duet-hero{padding:0 72px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product .duet-hero-wrapper.narrow .duet-hero-text*/.duet-hero.duet-hero-product.sc-duet-hero .duet-hero-wrapper.narrow.sc-duet-hero .duet-hero-text.sc-duet-hero{width:80%}}/*!@.duet-hero.duet-hero-product.duet-theme-turva*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero{background:rgb(255, 255, 255)}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product.duet-theme-turva.duet-hero-narrow*/.duet-hero.duet-hero-product.duet-theme-turva.duet-hero-narrow.sc-duet-hero{padding-top:160px}}/*!@.duet-hero.duet-hero-product.duet-theme-turva .background-mask*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .background-mask.sc-duet-hero{position:absolute;top:0;left:0;display:block;width:721px;height:256.85px;background-image:url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzIxIiBoZWlnaHQ9IjI1NyIgdmlld0JveD0iMCAwIDcyMSAyNTciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8yODIwXzY5OTkxKSI+CjxwYXRoIGQ9Ik04MC4xNzA1IDIzLjE4MTVDOTEuOTY5OSAxOC44NjU5IDEwMi44NyAxMS42NTU5IDExMi45MDkgMS41NjQ0OEMxMjMuNzcgLTguMzA1MjcgMTM0LjM4MiAtMTguMjAxMSAxNDQuODI2IC0yOC4xODgyQzE1NS4yNDMgLTM4LjE2MjIgMTY1LjkwOCAtNDguMDg0MSAxNzYuNzQzIC01Ny45Mjc4QzE3OC44MTYgLTU5LjA0OSAxODAuNDk4IC02MC4yODc3IDE4MS43ODggLTYxLjY1NjdDMTgzLjA2NiAtNjMuMDEyNiAxODUuNDY1IC02Mi4yODI1IDE4OS4wMTIgLTU5LjQ3OTNDMTg0LjczNSAtNTEuMTM1IDE4MC43NTkgLTQyLjk2MDIgMTc3LjAxNyAtMzQuOTAyN0MxNzMuMjg4IC0yNi44NDUyIDE2Ny42ODEgLTE5LjEyNjggMTYwLjIxMSAtMTEuNzYwM0MxNTIuNzUzIC00LjM4MDgzIDE0NC45NTYgMy4zMTE1MiAxMzYuODQ3IDExLjM2OUMxMjguNzI0IDE5LjQyNjUgMTIwLjk2NiAyNy4xNDUgMTEzLjQ4MyAzNC40OTg0Qzk3LjQ5OCA0OS44MTggNzkuNjYyIDU2LjAyNDEgNjAuMDAwOCA1My4xNjg4QzQwLjI4NzQgNTAuMzEzNSAyNS41NDE0IDM5LjA3NDcgMTUuNjk3NyAxOS40Nzg2QzMuOTI0NDUgLTIuMzcyOTkgLTEuMjI1NTUgLTI0LjQ3MjQgMC4yNDc3NDMgLTQ2Ljc4MDNDMS4yNTE2NyAtNjcuNDg0NiAzLjQwMjkzIC04Ny43OTc4IDYuODA1ODQgLTEwNy43NzJDMTAuMTk1NyAtMTI3LjczMyAxNS43MTA4IC0xNDcuNDg2IDIzLjMzOCAtMTY3LjA0M0MyNi4zMTA3IC0xNzQuMDMxIDI5LjAwOTUgLTE4MC44NSAzMS40NzM3IC0xODcuNTY0QzMzLjkxMTggLTE5NC4yMjcgMzYuNTMyNCAtMjAwLjY2OCAzOS4yNTc0IC0yMDYuODQ4QzQxLjgxMjggLTIwOS41NzIgNDMuNDY4NiAtMjEyLjEyOCA0NC4xODU3IC0yMTQuNTRDNTMuMDI1NSAtMjI5LjM3NyA2Mi44MyAtMjM3Ljk5NSA3My42Mzg1IC0yNDAuNDMzQzg0LjM5NDggLTI0Mi44NzEgOTguMTM2OSAtMjM5LjgyMSAxMTQuODEyIC0yMzEuMzJDMTI3Ljk0MiAtMjI1LjYwOSAxMzMuMzkyIC0yMTYuMTA1IDEzMS4xNDkgLTIwMi43OTNDMTMwLjE3MSAtMTkwLjgzNyAxMjcuOTk0IC0xNzkuMjU5IDEyNC42MTcgLTE2OC4wMkMxMjAuMDQxIC0xNTIuNzc5IDExNS40MzggLTEzNy41NTEgMTEwLjg0OSAtMTIyLjMyMkMxMDYuMjczIC0xMDcuMDgxIDEwMS4yNzkgLTkxLjk2OTkgOTUuODk0MyAtNzcuMDAyM0M4NS41OTQzIC00OC42MDU3IDc5LjQyNzQgLTE5LjQyNjcgNzcuNDA2NSAxMC41NjA2Qzc3LjcxOTQgMTIuNDEyIDc4LjA0NTMgMTQuMjYzNSA3OC4zNTgzIDE2LjA4ODhDNzguNjcxMiAxNy45NDAyIDc5LjI3MDkgMjAuMyA4MC4xNzA1IDIzLjE5NDRNMTEwLjkxNCAtMjk2Ljc1N0MxMDkuNTQ1IC0yOTguMDM1IDEwNy4zMTYgLTI5OS4zNTIgMTA0LjIzOSAtMzAwLjczNEMxMDEuMTYyIC0zMDIuMDkgOTguMjQxMiAtMzA0LjA1OSA5NS41NDIzIC0zMDYuNjI3QzkwLjA3OTQgLTMxMS43NzcgODYuOTc2MyAtMzE4LjE2NiA4Ni4yMzMyIC0zMjUuODE5Qzg1LjQ2NCAtMzMzLjQ3MiA4Ny4zODA1IC0zNDAuNTUyIDkxLjk2OTkgLTM0Ny4wNThDOTMuMjIxNSAtMzQ4LjQxNCA5NC4xNDcyIC0zNDkuMjM1IDk0LjY4MTggLTM0OS41MjJDOTUuMTkwMyAtMzQ5Ljc5NiA5Ni4xMDI5IC0zNTAuNjA0IDk3LjM5MzcgLTM1MS45OTlDMTA5LjY3NSAtMzU3LjkwNiAxMjIuNDE0IC0zNTYuNjkzIDEzNS42MzQgLTM0OC4zMzZDMTQ2Ljk1MSAtMzQyLjMyNSAxNTIuMDg4IC0zMzMuMzE2IDE1MS4xMzYgLTMyMS4zNkwxNDguMjI5IC0zMTEuNzM4QzE0NC42NjkgLTI5Ny4wNyAxMzUuNTY5IC0yOTEuNTAzIDEyMC45MTQgLTI5NS4wNjJDMTE5LjA1IC0yOTQuNzIzIDExNS43MzggLTI5NS4yOTcgMTEwLjkxNCAtMjk2Ljc0NCIgZmlsbD0iI0Y1RjVGNyIvPgo8cGF0aCBkPSJNMjQyLjc2NyAyMTUuNTE4QzI0NS4wODggMjEzLjU4OCAyNDcuMjc4IDIxMi4xMDIgMjQ5LjM3NyAyMTAuOTY4QzI1MS40NSAyMDkuODU5IDI1My41MzYgMjA4Ljc1MSAyNTUuNjIyIDIwNy42MDRDMjc0LjIyNyAxOTIuMjg0IDI5MC41NzcgMTc3LjE2IDMwNC43MjMgMTYyLjE5M0MzMTUuNjg4IDE0OC45NDYgMzI2LjYxNCAxMzUuODU2IDMzNy40ODggMTIyLjk4N0MzNDguMzYxIDExMC4xMTkgMzU4Ljg4MyA5Ni45Mzc1IDM2OS4wNjYgODMuNDE3MUMzNzYuNDQ1IDczLjQzMDEgMzg0LjU4MSA2My44NjAyIDM5My40NDcgNTQuNzQ2NkM0MDIuMyA0NS42NDYxIDQxMC44MjYgMzYuMjMyNyA0MTkuMDAxIDI2LjQ4MDNDNDIxLjgwNCAyMi45NzMxIDQyNC4yMjkgMjAuMDAwNCA0MjYuMjg5IDE3LjU0OTNDNDI4LjMyMyAxNS4xMjQzIDQzMC41MDEgMTIuOTMzOCA0MzIuODM1IDExLjAxNzNDNDM0LjkwOCA5LjkwOTA2IDQzNi43NDYgOS41ODMwMSA0MzguMzYzIDEwLjA2NTRDNDM5Ljk1MyAxMC41NDc5IDQ0MS43OTIgMTAuMjQ4IDQ0My45MDQgOS4xMTM3MUM0NDMuMTg3IDExLjUxMjcgNDQyLjgyMiAxMy4zOTAzIDQ0Mi44ODcgMTQuNjk0QzQ0Mi45MjYgMTYuMDIzOSA0NDIuMjg3IDE3LjM2NjggNDQxLjAwOSAxOC43MjI3QzQyNC42NDcgNDYuOTYzIDQwNy42ODQgNzIuODE3MyAzOTAuMTIyIDk2LjMxMTdDMzc2LjY0MSAxMTQuOTU2IDM2My4xNDcgMTMyLjkwOSAzNDkuNjM5IDE1MC4yMjRDMzM2LjEwNiAxNjcuNTI1IDMyMi4yMiAxODUuMzYxIDMwNy45NDQgMjAzLjc1OEMzMDEuNTI5IDIxMC41MzcgMjk1LjM4OCAyMTcuMiAyODkuNDk1IDIyMy43MTlDMjgzLjU4OSAyMzAuMjI1IDI3Ny40MzUgMjM2LjkgMjcxLjAyIDI0My42NjdDMjU4LjkyMSAyNTQuODggMjQ0LjQ4OCAyNTkuMjM0IDIyNy43MzQgMjU2Ljc5NkMxOTYuODYgMjUxLjg4MSAxNzYuMDI1IDIzNi44NzQgMTY1LjIxNyAyMTEuNzg5QzE1NC42OTUgMTg4LjU2OCAxNDkuNTMyIDE2Ni41MDggMTQ5LjcwMiAxNDUuNjA4QzE0Ny45NDIgMTEzLjY3OCAxNDguMzA3IDgxLjk0MzggMTUwLjgxIDUwLjQxOEMxNTMuMyAxOC44NzkyIDE1OC4zMiAtMTIuMzIwNyAxNjUuODY5IC00My4yMDc3QzE4MC4xNzIgLTEwNS4yMDMgMTk4LjU2OCAtMTY2LjQwMyAyMjEuMTExIC0yMjYuODA4QzIzMi4wODkgLTI1Ny41MjYgMjQ0LjQyMyAtMjg3LjYxOCAyNTguMSAtMzE3LjA5NkMyNzEuNzc2IC0zNDYuNTc1IDI4Ni4zNzkgLTM3NS41MDcgMzAxLjk3MiAtNDA0LjAwOEMzMTIuOTUgLTQyNS45OSAzMjQuNjMyIC00NDcuMzQ2IDMzNi45NzkgLTQ2OC4wNjNDMzQ5LjMxMyAtNDg4Ljc1NCAzNjIuNDk1IC01MDkuMjI0IDM3Ni40MzIgLTUyOS40NTlDNDAzLjg2NCAtNTY4LjI5OSA0MzQuMTkgLTYwMy42NzEgNDY3LjM5OCAtNjM1LjU3NUM0NzUuNjM4IC02NDIuNjgxIDQ4My45OTUgLTY0OS4zMTcgNDkyLjQwNSAtNjU1LjUxQzUwMC44MjggLTY2MS42NzcgNTEwLjM5NyAtNjY2LjY1OCA1MjEuMTU0IC02NzAuMzk5QzU0NS4yNzQgLTY3Ny45NjEgNTY3LjcxMiAtNjc2Ljg3OSA1ODguMzkxIC02NjcuMTY2QzYwNC43MjcgLTY2MC40NzggNjEzLjY3MSAtNjQ5LjUxMyA2MTUuMjEgLTYzNC4yMTlDNjE3LjU5NiAtNjI0Ljc1NCA2MTguMTk1IC02MTMuNjcxIDYxNi45ODMgLTYwMC45NTlDNjEwLjMyIC01NTguNDgxIDU5Ny44NTYgLTUxNS41MzQgNTc5LjU1MSAtNDcyLjE5NkM1NjUuNDMxIC00MzkuODIzIDU0OS4wODEgLTQwOC43NTMgNTMwLjUyOCAtMzc5LjAwMUM1MTEuOTM2IC0zNDkuMjYxIDQ5Mi42MTQgLTMxOS45NTIgNDcyLjYgLTI5MS4wOTlDNDY1LjQ1NiAtMjgxLjkyIDQ1Ny45NDYgLTI3MS41MDMgNDUwLjEyMyAtMjU5LjkxMkM0MzMuNTc4IC0yMzYuOTc4IDQxNS42MzcgLTIxNS4xMjYgMzk2LjI4OSAtMTk0LjM1N0MzNzYuOTAyIC0xNzMuNTYxIDM1NS44NDUgLTE1NC4zOTYgMzMzLjA2OCAtMTM2LjgyQzMyMC4zODIgLTEyNi42OSAzMTIuNTMzIC0xMTUuMDg2IDMwOS40ODIgLTEwMi4wNDhDMzA0LjE4OSAtODQuNDQ2OCAyOTguOTc0IC02Ny4wNDExIDI5My43OTggLTQ5Ljg0NEMyODguNjIxIC0zMi42NDY5IDI4My43NzEgLTE1LjExMDggMjc5LjI4NiAyLjcxMjFDMjc1LjI3MSAxOC45NzA1IDI3MS4zMDcgMzQuOTgxIDI2Ny40MjIgNTAuODM1MkMyNjMuNTIzIDY2LjY2MzMgMjU5Ljk2NCA4Mi44NDM0IDI1Ni43NyA5OS4zMzY1QzI1My41NDkgMTE1LjgwMyAyNTAuNjgxIDEzMi42MjIgMjQ4LjE1MiAxNDkuNzQxQzI0NS42MDkgMTY2Ljg2IDI0My4xMzIgMTgzLjc5NyAyNDAuNzQ2IDIwMC40OThDMjQxLjA0NiAyMDIuMzM3IDI0MS4zMDcgMjA0LjM5NiAyNDEuNTE1IDIwNi42MTNDMjQxLjY5OCAyMDguODY4IDI0Mi4xMjggMjExLjg0MSAyNDIuNzggMjE1LjUxOE01NjQuMzIyIC02MjIuMDgxQzU2MS43MjggLTYxOS4zNDMgNTU4LjExNiAtNjE2LjA4MyA1NTMuNDg4IC02MTIuMjM3QzU0Mi4yMzYgLTU5OC4xNjkgNTMwLjk1OCAtNTgzLjkwNiA1MTkuNjI4IC01NjkuNDU5QzUwOC4yNTkgLTU1NC45ODcgNDk4LjA1IC01MzkuOTQxIDQ4OS4wMTUgLTUyNC4zNzRDNDU5LjIzNiAtNDc0Ljg2OSA0MzIuNzY5IC00MjMuOTU2IDQwOS42MDEgLTM3MS42MDhDMzg2LjQxOSAtMzE5LjI0OCAzNjUuMTkzIC0yNjUuNDQgMzQ1LjkzNiAtMjEwLjE3MkMzNDUuNzAyIC0yMDkuMzc3IDM0NS43MDIgLTIwOC43MTIgMzQ2LjAxNSAtMjA4LjE5QzM0Ni4yNjIgLTIwNy42NTYgMzQ2LjE4NCAtMjA2LjU4NyAzNDUuNzE1IC0yMDUuMDA5QzM0OS4zNzggLTIwNS42MjIgMzUxLjM2IC0yMDYuMzM5IDM1MS42MDggLTIwNy4xNDdDMzU1LjQ2NyAtMjExLjIxNSAzNTkuNTA5IC0yMTUuMjMxIDM2My43NDYgLTIxOS4xOTRDMzY3Ljk5NyAtMjIzLjE0NSAzNzEuNzY1IC0yMjcuNjgyIDM3NS4wNzYgLTIzMi44MTlDNDAyLjg4NiAtMjY3LjE2MSA0MjguNzE0IC0zMDIuMTQyIDQ1Mi41MzUgLTMzNy43MzZDNDc2LjM2OCAtMzczLjMwMyA0OTguNTMzIC00MTAuNjk2IDUxOS4wNjggLTQ0OS44ODhDNTQzLjg1MyAtNDk3LjM3MiA1NTkuNTc3IC01NDYuNzM0IDU2Ni4yNTIgLTU5Ny45MzRDNTY2LjY0MyAtNjAyLjE4NSA1NjYuOTE3IC02MDYuMDE4IDU2Ny4xIC02MDkuNDZDNTY3LjI0MyAtNjEyLjkwMiA1NjYuMzE3IC02MTcuMSA1NjQuMzM2IC02MjIuMDgxIiBmaWxsPSIjRjVGNUY3Ii8+CjxwYXRoIGQ9Ik02OTYuNTE1IDE4OS4wNjRDNzA0LjYzOCAxODQuMzk2IDcxMi42ODIgMTc5LjYxMSA3MjAuNjg4IDE3NC43MzVWMTM0LjA1N0M2OTcuODE5IDE0OC41MDMgNjczLjgwMyAxNTkuNjM3IDY0OC42MDEgMTY3LjQyMUM2MjIuMDgyIDE3NS42MzUgNTk0LjU1OCAxODAuNjY3IDU2Ni4wMTggMTgyLjU1OEM1NTAuOTIgMTgzLjI2MiA1NDEuMjk4IDE4MS44OTMgNTM3LjEgMTc4LjQzOEM1MzIuODc2IDE3NS4wMDkgNTI5LjA5NSAxNjUuNzUyIDUyNS43NTcgMTUwLjc0NUw1MjMuOTU4IDEzMC41NDlDNTIzLjMzMiAxMTguMTI0IDUyNC43NjYgMTA2Ljc1NSA1MjguMzM5IDk2LjQyODlDNTMxLjg1OSA4Ni4xNTUgNTM2LjEyMiA3NS42MjAzIDU0MS4xMTYgNjQuODc3QzU0NS42MTQgNjQuNDg1OSA1NDkuNTY0IDY0LjM2ODUgNTUzLjAzMiA2NC41MzhDNTU2LjQ3NSA2NC42OTQ1IDU2MC40MzggNjQuNTc3MSA1NjQuOTQ5IDY0LjE3MjlDNTg1Ljg3NSA2NC4zNjg1IDYwNy42MzYgNjEuNzQ3OSA2MzAuMjY5IDU2LjI4NDlDNjUyLjA4MiA1MC42MjY1IDY3MC40IDQxLjI3ODIgNjg1LjI3NyAyOC4yNTMzQzY5NC45MzggMTkuNzc4NiA3MDQuMDI1IDEwLjM3ODMgNzEyLjU2NSAwLjA5MTMwODZINjM5LjUyNkM2MjAuMjU2IDE2Ljk4ODUgNTk2Ljk0NCAyNy40ODQxIDU2OS41MzkgMzEuNDYwN0M1NjcuNjYxIDMxLjc3MzYgNTY2LjM1NyAzMS44MTI3IDU2NS41NzUgMzEuNTY1QzU2NC43NTQgMzEuMzMwMyA1NjMuODI4IDMxLjUxMjggNTYyLjgxMSAzMi4wNDc0QzU2MS45OSAzMS44MTI3IDU2MS42NTEgMzEuNDk5OCA1NjEuNzgxIDMxLjA4MjZDNTYxLjg5OCAzMC42OTE1IDU2MS41NDYgMzAuMzY1NSA1NjAuNzUxIDMwLjEzMDhDNTYwLjk5OSAyOS4zMzU1IDU2MC45MDcgMjguODY2MSA1NjAuNTE2IDI4Ljc2MThDNTYwLjA5OSAyOC42MTg0IDU2MC4wMzQgMjguMTYyIDU2MC4yOTUgMjcuMzUzN0M1NjUuMzc5IDE4LjE3NDkgNTcwLjc3NyA5LjEwMDU1IDU3Ni40MzYgMC4wOTEzMDg2SDQzMC4xNzZDNDI0LjIwNCAxMi42NzMgNDE5LjA1NCAyNS45NDU2IDQxNC44MyAzOS45ODc1QzQwNi40NzMgNjEuOTU2NSA0MDQuMjgyIDgyLjI2OTcgNDA4LjI4NSAxMDAuOTY2QzQxMi4wMTQgMTIwLjQ1OCA0MTguODMzIDEzOC40NjMgNDI4LjcyOCAxNTQuOTgyQzQzOC42MTEgMTcxLjUyOCA0NTIuNDU4IDE4NS4wODcgNDcwLjI1NCAxOTUuN0M0OTAuNzM3IDIwOC44ODEgNTEyLjE0NSAyMTcuNzIxIDUzNC40MDEgMjIyLjI0NUM1NTYuNjQ0IDIyNi43NTcgNTc5Ljg2NSAyMjYuNTA5IDYwNC4xMTUgMjIxLjU2N0M2MDkuNjQzIDIyMC42MTYgNjE1LjI2MyAyMTkuNDY4IDYyMC45MjEgMjE4LjA5OUM2MjYuNTY3IDIxNi43NTYgNjMyLjI3NyAyMTUuMTkyIDYzOC4wNTMgMjEzLjQxOUM2NTkuMDU3IDIwNy41MjUgNjc4LjU2MiAxOTkuMzkgNjk2LjU0MSAxODkuMDc3IiBmaWxsPSIjRjVGNUY3Ii8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMjgyMF82OTk5MSI+CjxyZWN0IHdpZHRoPSI3MjEiIGhlaWdodD0iMjU2Ljg0OCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K\");background-repeat:no-repeat}@media (min-width: 48em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .background-mask*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .background-mask.sc-duet-hero{left:181px}}/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-image*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-image.sc-duet-hero{top:-185px;right:0;left:0;width:485px;height:485px;margin:0 auto;border-radius:0;transform:none;-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");-webkit-mask-repeat:no-repeat;mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");mask-repeat:no-repeat}@media (min-width: 36em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-image*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-image.sc-duet-hero{right:0}}@media (min-width: 48em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-image*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-image.sc-duet-hero{top:-165px;right:0}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-image.narrow*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-image.narrow.sc-duet-hero{right:40%;left:auto}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-image:not(.narrow)*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-image.sc-duet-hero:not(.narrow){top:-230px;right:-180px;left:auto;width:675px;height:675px;margin:0}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-image:not(.narrow)*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-image.sc-duet-hero:not(.narrow){right:-120px;width:736px}}/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-image .brand-shaped-image-bg*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-image.sc-duet-hero .brand-shaped-image-bg.sc-duet-hero{width:600px;height:320px;transform:translate(-50%, 0)}@media (min-width: 48em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-image .brand-shaped-image-bg*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-image.sc-duet-hero .brand-shaped-image-bg.sc-duet-hero{width:600px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-image .brand-shaped-image-bg:not(.narrow)*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-image.sc-duet-hero .brand-shaped-image-bg.sc-duet-hero:not(.narrow){width:800px;height:470px}}/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-icon*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-icon.sc-duet-hero{top:150px;background:rgba(198, 12, 48, 0.9);-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");-webkit-mask-repeat:no-repeat;mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");mask-repeat:no-repeat;transform:rotate(0deg)}/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-icon duet-icon*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-icon.sc-duet-hero duet-icon.sc-duet-hero{position:relative;top:-10px;transform:rotate(0deg)}@media (min-width: 48em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-icon duet-icon*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-icon.sc-duet-hero duet-icon.sc-duet-hero{top:-15px}}@media (min-width: 48em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-icon*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-icon.sc-duet-hero{top:180px;right:20%}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-icon*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-icon.sc-duet-hero{top:192px}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-icon*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-icon.sc-duet-hero{top:192px}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-icon.narrow*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-icon.narrow.sc-duet-hero{right:40%}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-product.duet-theme-turva .brand-shaped-icon:not(.narrow)*/.duet-hero.duet-hero-product.duet-theme-turva.sc-duet-hero .brand-shaped-icon.sc-duet-hero:not(.narrow){right:340px}}/*!@.duet-hero.duet-hero-content*/.duet-hero.duet-hero-content.sc-duet-hero{padding:0 0 48px;padding-top:236px;background:rgb(255, 255, 255)}@media (min-width: 48em){/*!@.duet-hero.duet-hero-content*/.duet-hero.duet-hero-content.sc-duet-hero{padding-top:384px}}/*!@.duet-hero.duet-hero-content:not(.duet-hero-has-image)*/.duet-hero.duet-hero-content.sc-duet-hero:not(.duet-hero-has-image){padding:72px 0 48px}/*!@.duet-hero.duet-hero-content .background-area*/.duet-hero.duet-hero-content.sc-duet-hero .background-area.sc-duet-hero{position:absolute;width:100%}/*!@.duet-hero.duet-hero-content .background*/.duet-hero.duet-hero-content.sc-duet-hero .background.sc-duet-hero{position:absolute;top:-236px;width:100%;height:600px;overflow:hidden}/*!@.duet-hero.duet-hero-content .background .background-mask*/.duet-hero.duet-hero-content.sc-duet-hero .background.sc-duet-hero .background-mask.sc-duet-hero{display:none}@media (min-width: 48em){/*!@.duet-hero.duet-hero-content .background*/.duet-hero.duet-hero-content.sc-duet-hero .background.sc-duet-hero{top:-384px}}/*!@.duet-hero.duet-hero-content .background .brand-shaped-image*/.duet-hero.duet-hero-content.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero{position:absolute;top:-165px;right:0;left:30px;z-index:0;width:375px;height:375px;margin:0 auto;overflow:hidden;border-radius:20%;transform:rotate(7deg)}@media (min-width: 48em){/*!@.duet-hero.duet-hero-content .background .brand-shaped-image*/.duet-hero.duet-hero-content.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero{top:-325px;left:250px;width:687px;height:687px}}/*!@.duet-hero.duet-hero-content .background .brand-shaped-image .brand-shaped-image-wrapper*/.duet-hero.duet-hero-content.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero .brand-shaped-image-wrapper.sc-duet-hero{position:relative;width:100%;height:100%}/*!@.duet-hero.duet-hero-content .background .brand-shaped-image .brand-shaped-image-bg*/.duet-hero.duet-hero-content.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero .brand-shaped-image-bg.sc-duet-hero{position:absolute;bottom:0;left:50%;z-index:1;width:600px;height:256px;background-repeat:no-repeat;background-size:100%;transform:rotate(-7deg) translate(-50%, 0)}@media (min-width: 48em){/*!@.duet-hero.duet-hero-content .background .brand-shaped-image .brand-shaped-image-bg*/.duet-hero.duet-hero-content.sc-duet-hero .background.sc-duet-hero .brand-shaped-image.sc-duet-hero .brand-shaped-image-bg.sc-duet-hero{width:733px;height:413px}}/*!@.duet-hero.duet-hero-content .background .brand-shape*/.duet-hero.duet-hero-content.sc-duet-hero .background.sc-duet-hero .brand-shape.sc-duet-hero{position:absolute;top:-25px;right:0;left:-300px;width:240px;height:240px;margin-right:auto;margin-left:auto;background:rgb(0, 119, 179);border-radius:20%;mix-blend-mode:normal;opacity:0.07;transform:rotate(7deg)}@media (min-width: 48em){/*!@.duet-hero.duet-hero-content .background .brand-shape*/.duet-hero.duet-hero-content.sc-duet-hero .background.sc-duet-hero .brand-shape.sc-duet-hero{top:80px;left:-400px;width:373px;height:373px}}/*!@.duet-hero.duet-hero-content .duet-hero-wrapper*/.duet-hero.duet-hero-content.sc-duet-hero .duet-hero-wrapper.sc-duet-hero{max-width:100%;margin:0 auto}/*!@.duet-hero.duet-hero-content .duet-hero-wrapper.fluid, .duet-hero.duet-hero-content .duet-hero-wrapper.narrow*/.duet-hero.duet-hero-content.sc-duet-hero .duet-hero-wrapper.fluid.sc-duet-hero,.duet-hero.duet-hero-content.sc-duet-hero .duet-hero-wrapper.narrow.sc-duet-hero{padding:0 16px}@media (min-width: 36em){/*!@.duet-hero.duet-hero-content .duet-hero-wrapper.fluid*/.duet-hero.duet-hero-content.sc-duet-hero .duet-hero-wrapper.fluid.sc-duet-hero{padding:0 28px}}@media (min-width: 62em){/*!@.duet-hero.duet-hero-content .duet-hero-wrapper.fluid*/.duet-hero.duet-hero-content.sc-duet-hero .duet-hero-wrapper.fluid.sc-duet-hero{padding:0 56px}}@media (min-width: 76.25em){/*!@.duet-hero.duet-hero-content .duet-hero-wrapper.fluid*/.duet-hero.duet-hero-content.sc-duet-hero .duet-hero-wrapper.fluid.sc-duet-hero{max-width:1110px;padding:0}}/*!@.duet-hero.duet-hero-content .duet-hero-wrapper.narrow*/.duet-hero.duet-hero-content.sc-duet-hero .duet-hero-wrapper.narrow.sc-duet-hero{max-width:888px}@media (min-width: 36em){/*!@.duet-hero.duet-hero-content .duet-hero-wrapper.narrow*/.duet-hero.duet-hero-content.sc-duet-hero .duet-hero-wrapper.narrow.sc-duet-hero{padding:0 48px}}@media (min-width: 48em){/*!@.duet-hero.duet-hero-content .duet-hero-wrapper.narrow*/.duet-hero.duet-hero-content.sc-duet-hero .duet-hero-wrapper.narrow.sc-duet-hero{padding:0 72px}}/*!@.duet-hero.duet-hero-content .duet-hero-text*/.duet-hero.duet-hero-content.sc-duet-hero .duet-hero-text.sc-duet-hero{max-width:100%}@media (min-width: 62em){/*!@.duet-hero.duet-hero-content .duet-hero-text*/.duet-hero.duet-hero-content.sc-duet-hero .duet-hero-text.sc-duet-hero{width:80%}}/*!@.duet-hero.duet-hero-content .duet-hero-text .duet-hero-pre*/.duet-hero.duet-hero-content.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-pre.sc-duet-hero{margin-top:1rem;margin-bottom:0.5rem}@media (min-width: 62em){/*!@.duet-hero.duet-hero-content .duet-hero-text .duet-hero-pre*/.duet-hero.duet-hero-content.sc-duet-hero .duet-hero-text.sc-duet-hero .duet-hero-pre.sc-duet-hero{margin-top:1.5rem;margin-bottom:0}}/*!@.duet-hero.duet-hero-content.duet-theme-turva*/.duet-hero.duet-hero-content.duet-theme-turva.sc-duet-hero{background:rgb(255, 255, 255)}/*!@.duet-hero.duet-hero-content.duet-theme-turva .background-mask*/.duet-hero.duet-hero-content.duet-theme-turva.sc-duet-hero .background-mask.sc-duet-hero{position:absolute;top:0;left:0;display:block;width:721px;height:256.85px;background-image:url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzIxIiBoZWlnaHQ9IjI1NyIgdmlld0JveD0iMCAwIDcyMSAyNTciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8yODIwXzY5OTkxKSI+CjxwYXRoIGQ9Ik04MC4xNzA1IDIzLjE4MTVDOTEuOTY5OSAxOC44NjU5IDEwMi44NyAxMS42NTU5IDExMi45MDkgMS41NjQ0OEMxMjMuNzcgLTguMzA1MjcgMTM0LjM4MiAtMTguMjAxMSAxNDQuODI2IC0yOC4xODgyQzE1NS4yNDMgLTM4LjE2MjIgMTY1LjkwOCAtNDguMDg0MSAxNzYuNzQzIC01Ny45Mjc4QzE3OC44MTYgLTU5LjA0OSAxODAuNDk4IC02MC4yODc3IDE4MS43ODggLTYxLjY1NjdDMTgzLjA2NiAtNjMuMDEyNiAxODUuNDY1IC02Mi4yODI1IDE4OS4wMTIgLTU5LjQ3OTNDMTg0LjczNSAtNTEuMTM1IDE4MC43NTkgLTQyLjk2MDIgMTc3LjAxNyAtMzQuOTAyN0MxNzMuMjg4IC0yNi44NDUyIDE2Ny42ODEgLTE5LjEyNjggMTYwLjIxMSAtMTEuNzYwM0MxNTIuNzUzIC00LjM4MDgzIDE0NC45NTYgMy4zMTE1MiAxMzYuODQ3IDExLjM2OUMxMjguNzI0IDE5LjQyNjUgMTIwLjk2NiAyNy4xNDUgMTEzLjQ4MyAzNC40OTg0Qzk3LjQ5OCA0OS44MTggNzkuNjYyIDU2LjAyNDEgNjAuMDAwOCA1My4xNjg4QzQwLjI4NzQgNTAuMzEzNSAyNS41NDE0IDM5LjA3NDcgMTUuNjk3NyAxOS40Nzg2QzMuOTI0NDUgLTIuMzcyOTkgLTEuMjI1NTUgLTI0LjQ3MjQgMC4yNDc3NDMgLTQ2Ljc4MDNDMS4yNTE2NyAtNjcuNDg0NiAzLjQwMjkzIC04Ny43OTc4IDYuODA1ODQgLTEwNy43NzJDMTAuMTk1NyAtMTI3LjczMyAxNS43MTA4IC0xNDcuNDg2IDIzLjMzOCAtMTY3LjA0M0MyNi4zMTA3IC0xNzQuMDMxIDI5LjAwOTUgLTE4MC44NSAzMS40NzM3IC0xODcuNTY0QzMzLjkxMTggLTE5NC4yMjcgMzYuNTMyNCAtMjAwLjY2OCAzOS4yNTc0IC0yMDYuODQ4QzQxLjgxMjggLTIwOS41NzIgNDMuNDY4NiAtMjEyLjEyOCA0NC4xODU3IC0yMTQuNTRDNTMuMDI1NSAtMjI5LjM3NyA2Mi44MyAtMjM3Ljk5NSA3My42Mzg1IC0yNDAuNDMzQzg0LjM5NDggLTI0Mi44NzEgOTguMTM2OSAtMjM5LjgyMSAxMTQuODEyIC0yMzEuMzJDMTI3Ljk0MiAtMjI1LjYwOSAxMzMuMzkyIC0yMTYuMTA1IDEzMS4xNDkgLTIwMi43OTNDMTMwLjE3MSAtMTkwLjgzNyAxMjcuOTk0IC0xNzkuMjU5IDEyNC42MTcgLTE2OC4wMkMxMjAuMDQxIC0xNTIuNzc5IDExNS40MzggLTEzNy41NTEgMTEwLjg0OSAtMTIyLjMyMkMxMDYuMjczIC0xMDcuMDgxIDEwMS4yNzkgLTkxLjk2OTkgOTUuODk0MyAtNzcuMDAyM0M4NS41OTQzIC00OC42MDU3IDc5LjQyNzQgLTE5LjQyNjcgNzcuNDA2NSAxMC41NjA2Qzc3LjcxOTQgMTIuNDEyIDc4LjA0NTMgMTQuMjYzNSA3OC4zNTgzIDE2LjA4ODhDNzguNjcxMiAxNy45NDAyIDc5LjI3MDkgMjAuMyA4MC4xNzA1IDIzLjE5NDRNMTEwLjkxNCAtMjk2Ljc1N0MxMDkuNTQ1IC0yOTguMDM1IDEwNy4zMTYgLTI5OS4zNTIgMTA0LjIzOSAtMzAwLjczNEMxMDEuMTYyIC0zMDIuMDkgOTguMjQxMiAtMzA0LjA1OSA5NS41NDIzIC0zMDYuNjI3QzkwLjA3OTQgLTMxMS43NzcgODYuOTc2MyAtMzE4LjE2NiA4Ni4yMzMyIC0zMjUuODE5Qzg1LjQ2NCAtMzMzLjQ3MiA4Ny4zODA1IC0zNDAuNTUyIDkxLjk2OTkgLTM0Ny4wNThDOTMuMjIxNSAtMzQ4LjQxNCA5NC4xNDcyIC0zNDkuMjM1IDk0LjY4MTggLTM0OS41MjJDOTUuMTkwMyAtMzQ5Ljc5NiA5Ni4xMDI5IC0zNTAuNjA0IDk3LjM5MzcgLTM1MS45OTlDMTA5LjY3NSAtMzU3LjkwNiAxMjIuNDE0IC0zNTYuNjkzIDEzNS42MzQgLTM0OC4zMzZDMTQ2Ljk1MSAtMzQyLjMyNSAxNTIuMDg4IC0zMzMuMzE2IDE1MS4xMzYgLTMyMS4zNkwxNDguMjI5IC0zMTEuNzM4QzE0NC42NjkgLTI5Ny4wNyAxMzUuNTY5IC0yOTEuNTAzIDEyMC45MTQgLTI5NS4wNjJDMTE5LjA1IC0yOTQuNzIzIDExNS43MzggLTI5NS4yOTcgMTEwLjkxNCAtMjk2Ljc0NCIgZmlsbD0iI0Y1RjVGNyIvPgo8cGF0aCBkPSJNMjQyLjc2NyAyMTUuNTE4QzI0NS4wODggMjEzLjU4OCAyNDcuMjc4IDIxMi4xMDIgMjQ5LjM3NyAyMTAuOTY4QzI1MS40NSAyMDkuODU5IDI1My41MzYgMjA4Ljc1MSAyNTUuNjIyIDIwNy42MDRDMjc0LjIyNyAxOTIuMjg0IDI5MC41NzcgMTc3LjE2IDMwNC43MjMgMTYyLjE5M0MzMTUuNjg4IDE0OC45NDYgMzI2LjYxNCAxMzUuODU2IDMzNy40ODggMTIyLjk4N0MzNDguMzYxIDExMC4xMTkgMzU4Ljg4MyA5Ni45Mzc1IDM2OS4wNjYgODMuNDE3MUMzNzYuNDQ1IDczLjQzMDEgMzg0LjU4MSA2My44NjAyIDM5My40NDcgNTQuNzQ2NkM0MDIuMyA0NS42NDYxIDQxMC44MjYgMzYuMjMyNyA0MTkuMDAxIDI2LjQ4MDNDNDIxLjgwNCAyMi45NzMxIDQyNC4yMjkgMjAuMDAwNCA0MjYuMjg5IDE3LjU0OTNDNDI4LjMyMyAxNS4xMjQzIDQzMC41MDEgMTIuOTMzOCA0MzIuODM1IDExLjAxNzNDNDM0LjkwOCA5LjkwOTA2IDQzNi43NDYgOS41ODMwMSA0MzguMzYzIDEwLjA2NTRDNDM5Ljk1MyAxMC41NDc5IDQ0MS43OTIgMTAuMjQ4IDQ0My45MDQgOS4xMTM3MUM0NDMuMTg3IDExLjUxMjcgNDQyLjgyMiAxMy4zOTAzIDQ0Mi44ODcgMTQuNjk0QzQ0Mi45MjYgMTYuMDIzOSA0NDIuMjg3IDE3LjM2NjggNDQxLjAwOSAxOC43MjI3QzQyNC42NDcgNDYuOTYzIDQwNy42ODQgNzIuODE3MyAzOTAuMTIyIDk2LjMxMTdDMzc2LjY0MSAxMTQuOTU2IDM2My4xNDcgMTMyLjkwOSAzNDkuNjM5IDE1MC4yMjRDMzM2LjEwNiAxNjcuNTI1IDMyMi4yMiAxODUuMzYxIDMwNy45NDQgMjAzLjc1OEMzMDEuNTI5IDIxMC41MzcgMjk1LjM4OCAyMTcuMiAyODkuNDk1IDIyMy43MTlDMjgzLjU4OSAyMzAuMjI1IDI3Ny40MzUgMjM2LjkgMjcxLjAyIDI0My42NjdDMjU4LjkyMSAyNTQuODggMjQ0LjQ4OCAyNTkuMjM0IDIyNy43MzQgMjU2Ljc5NkMxOTYuODYgMjUxLjg4MSAxNzYuMDI1IDIzNi44NzQgMTY1LjIxNyAyMTEuNzg5QzE1NC42OTUgMTg4LjU2OCAxNDkuNTMyIDE2Ni41MDggMTQ5LjcwMiAxNDUuNjA4QzE0Ny45NDIgMTEzLjY3OCAxNDguMzA3IDgxLjk0MzggMTUwLjgxIDUwLjQxOEMxNTMuMyAxOC44NzkyIDE1OC4zMiAtMTIuMzIwNyAxNjUuODY5IC00My4yMDc3QzE4MC4xNzIgLTEwNS4yMDMgMTk4LjU2OCAtMTY2LjQwMyAyMjEuMTExIC0yMjYuODA4QzIzMi4wODkgLTI1Ny41MjYgMjQ0LjQyMyAtMjg3LjYxOCAyNTguMSAtMzE3LjA5NkMyNzEuNzc2IC0zNDYuNTc1IDI4Ni4zNzkgLTM3NS41MDcgMzAxLjk3MiAtNDA0LjAwOEMzMTIuOTUgLTQyNS45OSAzMjQuNjMyIC00NDcuMzQ2IDMzNi45NzkgLTQ2OC4wNjNDMzQ5LjMxMyAtNDg4Ljc1NCAzNjIuNDk1IC01MDkuMjI0IDM3Ni40MzIgLTUyOS40NTlDNDAzLjg2NCAtNTY4LjI5OSA0MzQuMTkgLTYwMy42NzEgNDY3LjM5OCAtNjM1LjU3NUM0NzUuNjM4IC02NDIuNjgxIDQ4My45OTUgLTY0OS4zMTcgNDkyLjQwNSAtNjU1LjUxQzUwMC44MjggLTY2MS42NzcgNTEwLjM5NyAtNjY2LjY1OCA1MjEuMTU0IC02NzAuMzk5QzU0NS4yNzQgLTY3Ny45NjEgNTY3LjcxMiAtNjc2Ljg3OSA1ODguMzkxIC02NjcuMTY2QzYwNC43MjcgLTY2MC40NzggNjEzLjY3MSAtNjQ5LjUxMyA2MTUuMjEgLTYzNC4yMTlDNjE3LjU5NiAtNjI0Ljc1NCA2MTguMTk1IC02MTMuNjcxIDYxNi45ODMgLTYwMC45NTlDNjEwLjMyIC01NTguNDgxIDU5Ny44NTYgLTUxNS41MzQgNTc5LjU1MSAtNDcyLjE5NkM1NjUuNDMxIC00MzkuODIzIDU0OS4wODEgLTQwOC43NTMgNTMwLjUyOCAtMzc5LjAwMUM1MTEuOTM2IC0zNDkuMjYxIDQ5Mi42MTQgLTMxOS45NTIgNDcyLjYgLTI5MS4wOTlDNDY1LjQ1NiAtMjgxLjkyIDQ1Ny45NDYgLTI3MS41MDMgNDUwLjEyMyAtMjU5LjkxMkM0MzMuNTc4IC0yMzYuOTc4IDQxNS42MzcgLTIxNS4xMjYgMzk2LjI4OSAtMTk0LjM1N0MzNzYuOTAyIC0xNzMuNTYxIDM1NS44NDUgLTE1NC4zOTYgMzMzLjA2OCAtMTM2LjgyQzMyMC4zODIgLTEyNi42OSAzMTIuNTMzIC0xMTUuMDg2IDMwOS40ODIgLTEwMi4wNDhDMzA0LjE4OSAtODQuNDQ2OCAyOTguOTc0IC02Ny4wNDExIDI5My43OTggLTQ5Ljg0NEMyODguNjIxIC0zMi42NDY5IDI4My43NzEgLTE1LjExMDggMjc5LjI4NiAyLjcxMjFDMjc1LjI3MSAxOC45NzA1IDI3MS4zMDcgMzQuOTgxIDI2Ny40MjIgNTAuODM1MkMyNjMuNTIzIDY2LjY2MzMgMjU5Ljk2NCA4Mi44NDM0IDI1Ni43NyA5OS4zMzY1QzI1My41NDkgMTE1LjgwMyAyNTAuNjgxIDEzMi42MjIgMjQ4LjE1MiAxNDkuNzQxQzI0NS42MDkgMTY2Ljg2IDI0My4xMzIgMTgzLjc5NyAyNDAuNzQ2IDIwMC40OThDMjQxLjA0NiAyMDIuMzM3IDI0MS4zMDcgMjA0LjM5NiAyNDEuNTE1IDIwNi42MTNDMjQxLjY5OCAyMDguODY4IDI0Mi4xMjggMjExLjg0MSAyNDIuNzggMjE1LjUxOE01NjQuMzIyIC02MjIuMDgxQzU2MS43MjggLTYxOS4zNDMgNTU4LjExNiAtNjE2LjA4MyA1NTMuNDg4IC02MTIuMjM3QzU0Mi4yMzYgLTU5OC4xNjkgNTMwLjk1OCAtNTgzLjkwNiA1MTkuNjI4IC01NjkuNDU5QzUwOC4yNTkgLTU1NC45ODcgNDk4LjA1IC01MzkuOTQxIDQ4OS4wMTUgLTUyNC4zNzRDNDU5LjIzNiAtNDc0Ljg2OSA0MzIuNzY5IC00MjMuOTU2IDQwOS42MDEgLTM3MS42MDhDMzg2LjQxOSAtMzE5LjI0OCAzNjUuMTkzIC0yNjUuNDQgMzQ1LjkzNiAtMjEwLjE3MkMzNDUuNzAyIC0yMDkuMzc3IDM0NS43MDIgLTIwOC43MTIgMzQ2LjAxNSAtMjA4LjE5QzM0Ni4yNjIgLTIwNy42NTYgMzQ2LjE4NCAtMjA2LjU4NyAzNDUuNzE1IC0yMDUuMDA5QzM0OS4zNzggLTIwNS42MjIgMzUxLjM2IC0yMDYuMzM5IDM1MS42MDggLTIwNy4xNDdDMzU1LjQ2NyAtMjExLjIxNSAzNTkuNTA5IC0yMTUuMjMxIDM2My43NDYgLTIxOS4xOTRDMzY3Ljk5NyAtMjIzLjE0NSAzNzEuNzY1IC0yMjcuNjgyIDM3NS4wNzYgLTIzMi44MTlDNDAyLjg4NiAtMjY3LjE2MSA0MjguNzE0IC0zMDIuMTQyIDQ1Mi41MzUgLTMzNy43MzZDNDc2LjM2OCAtMzczLjMwMyA0OTguNTMzIC00MTAuNjk2IDUxOS4wNjggLTQ0OS44ODhDNTQzLjg1MyAtNDk3LjM3MiA1NTkuNTc3IC01NDYuNzM0IDU2Ni4yNTIgLTU5Ny45MzRDNTY2LjY0MyAtNjAyLjE4NSA1NjYuOTE3IC02MDYuMDE4IDU2Ny4xIC02MDkuNDZDNTY3LjI0MyAtNjEyLjkwMiA1NjYuMzE3IC02MTcuMSA1NjQuMzM2IC02MjIuMDgxIiBmaWxsPSIjRjVGNUY3Ii8+CjxwYXRoIGQ9Ik02OTYuNTE1IDE4OS4wNjRDNzA0LjYzOCAxODQuMzk2IDcxMi42ODIgMTc5LjYxMSA3MjAuNjg4IDE3NC43MzVWMTM0LjA1N0M2OTcuODE5IDE0OC41MDMgNjczLjgwMyAxNTkuNjM3IDY0OC42MDEgMTY3LjQyMUM2MjIuMDgyIDE3NS42MzUgNTk0LjU1OCAxODAuNjY3IDU2Ni4wMTggMTgyLjU1OEM1NTAuOTIgMTgzLjI2MiA1NDEuMjk4IDE4MS44OTMgNTM3LjEgMTc4LjQzOEM1MzIuODc2IDE3NS4wMDkgNTI5LjA5NSAxNjUuNzUyIDUyNS43NTcgMTUwLjc0NUw1MjMuOTU4IDEzMC41NDlDNTIzLjMzMiAxMTguMTI0IDUyNC43NjYgMTA2Ljc1NSA1MjguMzM5IDk2LjQyODlDNTMxLjg1OSA4Ni4xNTUgNTM2LjEyMiA3NS42MjAzIDU0MS4xMTYgNjQuODc3QzU0NS42MTQgNjQuNDg1OSA1NDkuNTY0IDY0LjM2ODUgNTUzLjAzMiA2NC41MzhDNTU2LjQ3NSA2NC42OTQ1IDU2MC40MzggNjQuNTc3MSA1NjQuOTQ5IDY0LjE3MjlDNTg1Ljg3NSA2NC4zNjg1IDYwNy42MzYgNjEuNzQ3OSA2MzAuMjY5IDU2LjI4NDlDNjUyLjA4MiA1MC42MjY1IDY3MC40IDQxLjI3ODIgNjg1LjI3NyAyOC4yNTMzQzY5NC45MzggMTkuNzc4NiA3MDQuMDI1IDEwLjM3ODMgNzEyLjU2NSAwLjA5MTMwODZINjM5LjUyNkM2MjAuMjU2IDE2Ljk4ODUgNTk2Ljk0NCAyNy40ODQxIDU2OS41MzkgMzEuNDYwN0M1NjcuNjYxIDMxLjc3MzYgNTY2LjM1NyAzMS44MTI3IDU2NS41NzUgMzEuNTY1QzU2NC43NTQgMzEuMzMwMyA1NjMuODI4IDMxLjUxMjggNTYyLjgxMSAzMi4wNDc0QzU2MS45OSAzMS44MTI3IDU2MS42NTEgMzEuNDk5OCA1NjEuNzgxIDMxLjA4MjZDNTYxLjg5OCAzMC42OTE1IDU2MS41NDYgMzAuMzY1NSA1NjAuNzUxIDMwLjEzMDhDNTYwLjk5OSAyOS4zMzU1IDU2MC45MDcgMjguODY2MSA1NjAuNTE2IDI4Ljc2MThDNTYwLjA5OSAyOC42MTg0IDU2MC4wMzQgMjguMTYyIDU2MC4yOTUgMjcuMzUzN0M1NjUuMzc5IDE4LjE3NDkgNTcwLjc3NyA5LjEwMDU1IDU3Ni40MzYgMC4wOTEzMDg2SDQzMC4xNzZDNDI0LjIwNCAxMi42NzMgNDE5LjA1NCAyNS45NDU2IDQxNC44MyAzOS45ODc1QzQwNi40NzMgNjEuOTU2NSA0MDQuMjgyIDgyLjI2OTcgNDA4LjI4NSAxMDAuOTY2QzQxMi4wMTQgMTIwLjQ1OCA0MTguODMzIDEzOC40NjMgNDI4LjcyOCAxNTQuOTgyQzQzOC42MTEgMTcxLjUyOCA0NTIuNDU4IDE4NS4wODcgNDcwLjI1NCAxOTUuN0M0OTAuNzM3IDIwOC44ODEgNTEyLjE0NSAyMTcuNzIxIDUzNC40MDEgMjIyLjI0NUM1NTYuNjQ0IDIyNi43NTcgNTc5Ljg2NSAyMjYuNTA5IDYwNC4xMTUgMjIxLjU2N0M2MDkuNjQzIDIyMC42MTYgNjE1LjI2MyAyMTkuNDY4IDYyMC45MjEgMjE4LjA5OUM2MjYuNTY3IDIxNi43NTYgNjMyLjI3NyAyMTUuMTkyIDYzOC4wNTMgMjEzLjQxOUM2NTkuMDU3IDIwNy41MjUgNjc4LjU2MiAxOTkuMzkgNjk2LjU0MSAxODkuMDc3IiBmaWxsPSIjRjVGNUY3Ii8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMjgyMF82OTk5MSI+CjxyZWN0IHdpZHRoPSI3MjEiIGhlaWdodD0iMjU2Ljg0OCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K\");background-repeat:no-repeat}@media (min-width: 48em){/*!@.duet-hero.duet-hero-content.duet-theme-turva .background-mask*/.duet-hero.duet-hero-content.duet-theme-turva.sc-duet-hero .background-mask.sc-duet-hero{left:181px}}/*!@.duet-hero.duet-hero-content.duet-theme-turva .brand-shaped-image*/.duet-hero.duet-hero-content.duet-theme-turva.sc-duet-hero .brand-shaped-image.sc-duet-hero{top:-155px;right:0;left:0;width:420px;height:420px;margin:0 auto;border-radius:0;transform:none;-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");-webkit-mask-repeat:no-repeat;mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");mask-repeat:no-repeat}@media (min-width: 48em){/*!@.duet-hero.duet-hero-content.duet-theme-turva .brand-shaped-image*/.duet-hero.duet-hero-content.duet-theme-turva.sc-duet-hero .brand-shaped-image.sc-duet-hero{top:-230px;width:687px;height:637px}}/*!@.duet-hero.duet-hero-content.duet-theme-turva .brand-shaped-image .brand-shaped-image-bg*/.duet-hero.duet-hero-content.duet-theme-turva.sc-duet-hero .brand-shaped-image.sc-duet-hero .brand-shaped-image-bg.sc-duet-hero{width:600px;height:280px;transform:translate(-50%, 0)}@media (min-width: 48em){/*!@.duet-hero.duet-hero-content.duet-theme-turva .brand-shaped-image .brand-shaped-image-bg*/.duet-hero.duet-hero-content.duet-theme-turva.sc-duet-hero .brand-shaped-image.sc-duet-hero .brand-shaped-image-bg.sc-duet-hero{width:733px;height:413px}}/*!@.duet-hero.duet-theme-turva*/.duet-hero.duet-theme-turva.sc-duet-hero{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";background:rgb(198, 12, 48)}@media (min-width: 62em){/*!@.duet-hero*/.duet-hero.sc-duet-hero{min-height:290px;padding:111.6px 56px;overflow:visible}}/*!@.duet-hero-icon*/.duet-hero-icon.sc-duet-hero{display:inline-block;vertical-align:top}@media (min-width: 62em){/*!@.duet-hero-icon*/.duet-hero-icon.sc-duet-hero{margin-top:-8px}}@media (min-width: 62em){/*!@.duet-hero-heading*/.duet-hero-heading.sc-duet-hero{margin-top:12px}}@media (min-width: 62em){/*!@.duet-hero-heading-has-pre*/.duet-hero-heading-has-pre.sc-duet-hero{margin-top:0}}/*!@.duet-hero-wrapper*/.duet-hero-wrapper.sc-duet-hero{position:relative;width:100%;max-width:1110px;margin:0 auto;text-align:center}/*!@.duet-hero-left-align .duet-hero-wrapper*/.duet-hero-left-align.sc-duet-hero .duet-hero-wrapper.sc-duet-hero{text-align:left}/*!@.duet-hero-with-image .duet-hero-wrapper*/.duet-hero-with-image.sc-duet-hero .duet-hero-wrapper.sc-duet-hero{position:static}@media (min-width: 62em){/*!@.duet-hero-wrapper*/.duet-hero-wrapper.sc-duet-hero{text-align:left}}/*!@.duet-hero-text*/.duet-hero-text.sc-duet-hero{max-width:50rem;margin:0 auto}/*!@.duet-hero-text-center .duet-hero-text*/.duet-hero-text-center.sc-duet-hero .duet-hero-text.sc-duet-hero{text-align:center !important}@media (min-width: 48em){/*!@.duet-hero-text*/.duet-hero-text.sc-duet-hero{width:80%}/*!@.duet-hero-left-align .duet-hero-text*/.duet-hero-left-align.sc-duet-hero .duet-hero-text.sc-duet-hero{margin:0}}@media (min-width: 62em){/*!@.duet-hero-text*/.duet-hero-text.sc-duet-hero{width:52%;max-width:none;margin-top:-10px;margin-left:0}/*!@.duet-hero-text-center .duet-hero-text*/.duet-hero-text-center.sc-duet-hero .duet-hero-text.sc-duet-hero{margin-left:auto}}/*!@.duet-hero:not(.duet-hero-with-image) .duet-hero-image*/.duet-hero.sc-duet-hero:not(.duet-hero-with-image) .duet-hero-image.sc-duet-hero{width:100%;max-width:400px;height:0;padding-bottom:50%;margin:28px auto 0;background-repeat:no-repeat;background-position:50% 50%;background-size:contain}@media (min-width: 36em){/*!@.duet-hero:not(.duet-hero-with-image) .duet-hero-image*/.duet-hero.sc-duet-hero:not(.duet-hero-with-image) .duet-hero-image.sc-duet-hero{padding-bottom:40%}}@media (min-width: 48em){/*!@.duet-hero:not(.duet-hero-with-image) .duet-hero-image*/.duet-hero.sc-duet-hero:not(.duet-hero-with-image) .duet-hero-image.sc-duet-hero{max-width:420px;padding-bottom:34%}/*!@.duet-hero-light .duet-hero:not(.duet-hero-with-image) .duet-hero-image*/.duet-hero-light.sc-duet-hero .duet-hero.sc-duet-hero:not(.duet-hero-with-image) .duet-hero-image.sc-duet-hero{max-width:540px}}@media (min-width: 62em){/*!@.duet-hero:not(.duet-hero-with-image) .duet-hero-image*/.duet-hero.sc-duet-hero:not(.duet-hero-with-image) .duet-hero-image.sc-duet-hero{position:absolute;top:50%;right:0;padding-bottom:30%;margin:0;transform:translateY(-50%)}/*!@.duet-hero-light .duet-hero:not(.duet-hero-with-image) .duet-hero-image*/.duet-hero-light.sc-duet-hero .duet-hero.sc-duet-hero:not(.duet-hero-with-image) .duet-hero-image.sc-duet-hero{right:-60px;padding-bottom:26%}/*!@.duet-hero-gray .duet-hero:not(.duet-hero-with-image) .duet-hero-image*/.duet-hero-gray.sc-duet-hero .duet-hero.sc-duet-hero:not(.duet-hero-with-image) .duet-hero-image.sc-duet-hero{right:-34px;padding-bottom:20%}}@media (min-width: 62em){/*!@.duet-hero-gray:not(.duet-hero-with-image) .duet-hero-image*/.duet-hero-gray.sc-duet-hero:not(.duet-hero-with-image) .duet-hero-image.sc-duet-hero{right:-34px;padding-bottom:20%}}/*!@.duet-hero-image-wrapper*/.duet-hero-image-wrapper.sc-duet-hero{position:relative;width:80%;height:0;padding-bottom:80%;margin:-30px auto 36px;overflow:hidden;border-radius:28%;box-shadow:0 0 20px rgba(255, 255, 255, 0.5);transform:rotate(10deg)}/*!@.duet-theme-turva .duet-hero-image-wrapper*/.duet-theme-turva.sc-duet-hero .duet-hero-image-wrapper.sc-duet-hero{padding-bottom:68%;border-radius:44% 47% 38% 54%;transform:none}@media screen and (min-width: 440px){/*!@.duet-hero-image-wrapper*/.duet-hero-image-wrapper.sc-duet-hero{width:300px;padding-bottom:300px}/*!@.duet-theme-turva .duet-hero-image-wrapper*/.duet-theme-turva.sc-duet-hero .duet-hero-image-wrapper.sc-duet-hero{width:80%;padding-bottom:68%}}@media (min-width: 62em){/*!@.duet-hero-image-wrapper*/.duet-hero-image-wrapper.sc-duet-hero{position:absolute;top:-60px;right:-50px;width:470px;padding-bottom:470px;margin:0}/*!@.duet-theme-turva .duet-hero-image-wrapper*/.duet-theme-turva.sc-duet-hero .duet-hero-image-wrapper.sc-duet-hero{top:-40px;right:-80px;width:536px;padding-bottom:470px}}@media (min-width: 76.25em){/*!@.duet-hero-image-wrapper*/.duet-hero-image-wrapper.sc-duet-hero{top:-70px;right:-60px;width:600px;padding-bottom:600px}/*!@.duet-theme-turva .duet-hero-image-wrapper*/.duet-theme-turva.sc-duet-hero .duet-hero-image-wrapper.sc-duet-hero{top:-70px;right:-60px;width:650px;padding-bottom:600px}}@media screen and (min-width: 1450px){/*!@.duet-hero-image-wrapper*/.duet-hero-image-wrapper.sc-duet-hero{top:-70px;right:25px}/*!@.duet-theme-turva .duet-hero-image-wrapper*/.duet-theme-turva.sc-duet-hero .duet-hero-image-wrapper.sc-duet-hero{right:0}}/*!@.duet-hero-image-wrapper .duet-hero-image*/.duet-hero-image-wrapper.sc-duet-hero .duet-hero-image.sc-duet-hero{position:absolute;top:-5%;left:-5%;width:110%;height:110%;background-repeat:no-repeat;background-position:50% 50%;background-size:cover;transform:rotate(-10deg)}/*!@.duet-theme-turva .duet-hero-image-wrapper .duet-hero-image*/.duet-theme-turva.sc-duet-hero .duet-hero-image-wrapper.sc-duet-hero .duet-hero-image.sc-duet-hero{top:0;left:0;width:100%;height:100%;transform:none}/*!@.duet-hero-image-mask*/.duet-hero-image-mask.sc-duet-hero{position:relative;margin:-48px auto 0;overflow:hidden}@media (min-width: 62em){/*!@.duet-hero-image-mask*/.duet-hero-image-mask.sc-duet-hero{position:absolute;top:0;right:0;width:470px;height:460px;margin:0}}@media (min-width: 76.25em){/*!@.duet-hero-image-mask*/.duet-hero-image-mask.sc-duet-hero{width:650px;height:580px}}@media screen and (min-width: 1450px){/*!@.duet-hero-image-mask*/.duet-hero-image-mask.sc-duet-hero{right:50%;transform:translateX(110%)}/*!@.duet-theme-turva .duet-hero-image-mask*/.duet-theme-turva.sc-duet-hero .duet-hero-image-mask.sc-duet-hero{transform:translateX(108%)}}/*!@duet-heading + duet-button*/duet-heading.sc-duet-hero+duet-button.sc-duet-hero{margin-top:12px !important}/*!@.duet-hero-links*/.duet-hero-links.sc-duet-hero{width:calc(100% + 56px);margin-top:48px;margin-left:-28px}/*!@.duet-hero-minimal .duet-hero-links*/.duet-hero-minimal.sc-duet-hero .duet-hero-links.sc-duet-hero{margin-top:28px}@media (min-width: 36em){/*!@.duet-hero-links*/.duet-hero-links.sc-duet-hero{margin-top:72px}/*!@.duet-hero-minimal .duet-hero-links*/.duet-hero-minimal.sc-duet-hero .duet-hero-links.sc-duet-hero{margin-top:28px}}@media (min-width: 62em){/*!@.duet-hero-links*/.duet-hero-links.sc-duet-hero{width:auto;margin:36px 0 0}/*!@.duet-hero-minimal .duet-hero-links*/.duet-hero-minimal.sc-duet-hero .duet-hero-links.sc-duet-hero{margin-top:28px}}/*!@.duet-hero-link*/.duet-hero-link.sc-duet-hero{display:flex;align-items:center;width:100%;padding:16px 16px 8px;font-weight:600;-webkit-hyphens:auto;hyphens:auto;line-height:1.25;color:rgb(0, 119, 179);text-align:left;text-decoration:none;border-bottom:1px solid rgb(225, 227, 230);transition:background-color 300ms ease}/*!@.duet-hero-link:focus*/.duet-hero-link.sc-duet-hero:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179)}/*!@.duet-theme-turva .duet-hero-link:focus, .duet-hero-link:focus.duet-theme-turva*/.duet-theme-turva.sc-duet-hero .duet-hero-link.sc-duet-hero:focus,.duet-hero-link.sc-duet-hero:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58)}/*!@.duet-hero-link:hover, .duet-hero-link:hover .duet-hero-action-arrow*/.duet-hero-link.sc-duet-hero:hover,.duet-hero-link.sc-duet-hero:hover .duet-hero-action-arrow.sc-duet-hero{color:rgb(0, 77, 128) !important;background:transparent !important}/*!@.duet-theme-turva .duet-hero-link:hover, .duet-theme-turva .duet-hero-link:hover .duet-hero-action-arrow*/.duet-theme-turva.sc-duet-hero .duet-hero-link.sc-duet-hero:hover,.duet-theme-turva.sc-duet-hero .duet-hero-link.sc-duet-hero:hover .duet-hero-action-arrow.sc-duet-hero{color:rgb(148, 9, 37) !important}/*!@.duet-theme-turva .duet-hero-link*/.duet-theme-turva.sc-duet-hero .duet-hero-link.sc-duet-hero{color:rgb(198, 12, 48)}@media (min-width: 36em){/*!@.duet-hero-link*/.duet-hero-link.sc-duet-hero{padding:16px 16px 16px 28px}}@media (min-width: 62em){/*!@.duet-hero-link*/.duet-hero-link.sc-duet-hero{display:inline-flex;width:auto;max-width:350px;padding:0;margin:0 28px 16px 0;border:0;border-radius:4px}}/*!@.duet-hero-link:hover*/.duet-hero-link.sc-duet-hero:hover{background:rgba(0, 0, 0, 0.02)}@media (min-width: 62em){/*!@.duet-hero-link:hover*/.duet-hero-link.sc-duet-hero:hover{background:transparent}}/*!@.duet-hero-link:first-of-type*/.duet-hero-link.sc-duet-hero:first-of-type{border-top:1px solid rgb(225, 227, 230)}@media (min-width: 62em){/*!@.duet-hero-link:first-of-type*/.duet-hero-link.sc-duet-hero:first-of-type{margin-top:0;border:0}}/*!@.duet-hero-link:last-of-type*/.duet-hero-link.sc-duet-hero:last-of-type{margin-bottom:-48px}@media (min-width: 62em){/*!@.duet-hero-link:last-of-type*/.duet-hero-link.sc-duet-hero:last-of-type{margin-right:0;margin-bottom:0}}/*!@.duet-hero-link span*/.duet-hero-link.sc-duet-hero span.sc-duet-hero{margin-top:-8px}@media (min-width: 36em){/*!@.duet-hero-link span*/.duet-hero-link.sc-duet-hero span.sc-duet-hero{margin:0}}/*!@.duet-hero-action-icon*/.duet-hero-action-icon.sc-duet-hero{margin-right:8px}@media (min-width: 36em){/*!@.duet-hero-action-icon*/.duet-hero-action-icon.sc-duet-hero{margin-right:12px}}/*!@.duet-hero-action-arrow*/.duet-hero-action-arrow.sc-duet-hero{margin:0 0 0 8px;color:rgb(0, 119, 179)}@media (max-width: 35.9375em){/*!@.duet-hero-action-arrow*/.duet-hero-action-arrow.sc-duet-hero{margin-top:-9px}}/*!@.duet-theme-turva .duet-hero-action-arrow*/.duet-theme-turva.sc-duet-hero .duet-hero-action-arrow.sc-duet-hero{color:rgb(198, 12, 48)}/*!@.duet-hero-back*/.duet-hero-back.sc-duet-hero{margin-bottom:28px !important;display:flex;align-items:center;justify-content:center}/*!@.duet-hero-left-align .duet-hero-back*/.duet-hero-left-align.sc-duet-hero .duet-hero-back.sc-duet-hero{align-items:self-start;justify-content:flex-start}@media (min-width: 36em){/*!@.duet-hero-back*/.duet-hero-back.sc-duet-hero{margin-bottom:36px !important}/*!@.duet-hero-minimal .duet-hero-back*/.duet-hero-minimal.sc-duet-hero .duet-hero-back.sc-duet-hero{margin-bottom:28px !important}}@media (min-width: 62em){/*!@.duet-hero-back*/.duet-hero-back.sc-duet-hero{display:block}}/*!@.duet-hero-pre*/.duet-hero-pre.sc-duet-hero{display:inline-block;width:auto;margin-right:8px}/*!@.duet-hero-pre + duet-heading*/.duet-hero-pre.sc-duet-hero+duet-heading.sc-duet-hero{margin-top:0 !important}";
11544
11549
 
11545
11550
  /**
11546
11551
  * @part duet-hero - piercing selector for styling the hero container
@@ -11548,6 +11553,7 @@ const duetHeroCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-hero,*.sc-duet-hero
11548
11553
  * @slot default - This is an unamed slot for a text or extra button that is placed after any buttons (or list item)
11549
11554
  * @slot badge - This is a slot for a status badge that sits next to pre-heading inside the hero component.
11550
11555
  * @slot bottom - This is a slot for content under the main hero content.
11556
+ * @slot pre-heading - This is a slot for pre-heading content inside the hero component.
11551
11557
  * @slot heading - This is a slot for heading content inside the hero component.
11552
11558
  * @slot subheading - This is a slot for heading content inside the hero component. Only usable with campaign, section variations.
11553
11559
  */
@@ -11608,6 +11614,7 @@ class DuetHero {
11608
11614
  */
11609
11615
  componentWillLoad() {
11610
11616
  inheritGlobalTheme(this);
11617
+ this.hasPreHeadingSlot = !!this.element.querySelector('[slot="pre-heading"]');
11611
11618
  this.hasHeadingSlot = !!this.element.querySelector('[slot="heading"]');
11612
11619
  this.hasSubHeadingSlot = !!this.element.querySelector('[slot="subheading"]');
11613
11620
  this.refresh();
@@ -11710,7 +11717,7 @@ class DuetHero {
11710
11717
  href: this.processedBack.href,
11711
11718
  id: this.processedBack.id,
11712
11719
  analyticsId: this.processedBack.analyticsId,
11713
- }) }, this.processedBack.label))), (this.variation === "gray" || this.variation === "minimal") && this.categoryIcon && (hAsync("duet-icon", { class: { "duet-hero-icon": true, "duet-hero-icon-has-heading": this.preHeading !== "" }, size: "x-large", background: this.categoryIconColor, name: this.categoryIcon })), hAsync("div", { class: { "duet-hero-text": true }, part: "duet-hero-text" }, this.preHeading && (hAsync("duet-paragraph", { margin: "none", class: "duet-hero-pre" }, this.preHeading)), hAsync("slot", { name: "badge" }), (this.heading || this.hasHeadingSlot) && (hAsync("duet-heading", { theme: this.theme, level: this.level, class: { "duet-hero-heading": true, "duet-hero-heading-has-pre": this.preHeading !== "" }, color: headingColor, visualLevel: headingVisualLevel, margin: campaignOrSection ? "none" : "auto" }, this.heading ? this.heading : hAsync("slot", { name: "heading" }))), campaignOrSection && this.hasSubHeadingSlot && (hAsync("duet-heading", { theme: this.theme, level: this.subHeadingLevel, class: { "duet-hero-subheading": true }, color: this.theme === "turva" ? "secondary-turva" : "secondary", visualLevel: "h2" }, hAsync("slot", { name: "subheading" }))), this.description && (hAsync("duet-paragraph", { theme: this.theme, color: textColor, variation: "intro" }, this.description)), (this.variation === "gray" || this.variation === "minimal") && this.processedListItems && (hAsync("duet-list", { theme: this.theme, "label-width": "30", breakpoint: "large", mobile: this.leftAlign ? undefined : "center" }, this.processedListItems.map(item => (hAsync("duet-list-item", null, hAsync("span", { slot: "label" }, item.label), hAsync("span", { slot: "value" }, item.value)))))), this.buttonLabel && (hAsync("duet-button", { url: this.buttonUrl, icon: this.icon, iconRight: this.iconRight, iconSize: this.iconSize, variation: buttonVariation, theme: this.theme, identifier: this.buttonId, onClick: event => this.handleClick(event, this.buttonData), fixed: true }, this.buttonLabel)), hAsync("span", { class: "duet-hero-slot-unnamed" }, hAsync("slot", null))), (this.variation === "gray" || this.variation === "minimal") && this.processedActions && (hAsync("div", { class: "duet-hero-links" }, this.processedActions.map(item => (hAsync("a", { class: "duet-hero-link", href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleClick(event, item) }, hAsync("div", { class: "duet-hero-action-icon" }, hAsync("duet-icon", { size: "small", margin: "none", name: item.icon, color: "currentColor", outline: outlineColor })), hAsync("span", null, item.label), item.external && hAsync("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), item.external && (hAsync("div", { class: "duet-hero-action-arrow" }, hAsync("duet-icon", { icon: actionNewWindowSmall.svg, size: "xx-small", margin: "none", color: "currentColor" })))))))), this.image &&
11720
+ }) }, this.processedBack.label))), (this.variation === "gray" || this.variation === "minimal") && this.categoryIcon && (hAsync("duet-icon", { class: { "duet-hero-icon": true, "duet-hero-icon-has-heading": this.preHeading !== "" }, size: "x-large", background: this.categoryIconColor, name: this.categoryIcon })), hAsync("div", { class: { "duet-hero-text": true }, part: "duet-hero-text" }, (this.preHeading || this.hasPreHeadingSlot) && (hAsync("duet-paragraph", { margin: "none", class: "duet-hero-pre", size: this.variation === "content" ? "small" : "medium" }, this.preHeading ? this.preHeading : hAsync("slot", { name: "pre-heading" }))), hAsync("slot", { name: "badge" }), (this.heading || this.hasHeadingSlot) && (hAsync("duet-heading", { theme: this.theme, level: this.level, class: { "duet-hero-heading": true, "duet-hero-heading-has-pre": this.preHeading !== "" }, color: headingColor, visualLevel: headingVisualLevel, margin: campaignOrSection ? "none" : "auto" }, this.heading ? this.heading : hAsync("slot", { name: "heading" }))), campaignOrSection && this.hasSubHeadingSlot && (hAsync("duet-heading", { theme: this.theme, level: this.subHeadingLevel, class: { "duet-hero-subheading": true }, color: this.theme === "turva" ? "secondary-turva" : "secondary", visualLevel: "h2" }, hAsync("slot", { name: "subheading" }))), this.description && (hAsync("duet-paragraph", { theme: this.theme, color: textColor, variation: "intro" }, this.description)), (this.variation === "gray" || this.variation === "minimal") && this.processedListItems && (hAsync("duet-list", { theme: this.theme, "label-width": "30", breakpoint: "large", mobile: this.leftAlign ? undefined : "center" }, this.processedListItems.map(item => (hAsync("duet-list-item", null, hAsync("span", { slot: "label" }, item.label), hAsync("span", { slot: "value" }, item.value)))))), this.buttonLabel && (hAsync("duet-button", { url: this.buttonUrl, icon: this.icon, iconRight: this.iconRight, iconSize: this.iconSize, variation: buttonVariation, theme: this.theme, identifier: this.buttonId, onClick: event => this.handleClick(event, this.buttonData), fixed: true }, this.buttonLabel)), hAsync("span", { class: "duet-hero-slot-unnamed" }, hAsync("slot", null))), (this.variation === "gray" || this.variation === "minimal") && this.processedActions && (hAsync("div", { class: "duet-hero-links" }, this.processedActions.map(item => (hAsync("a", { class: "duet-hero-link", href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleClick(event, item) }, hAsync("div", { class: "duet-hero-action-icon" }, hAsync("duet-icon", { size: "small", margin: "none", name: item.icon, color: "currentColor", outline: outlineColor })), hAsync("span", null, item.label), item.external && hAsync("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), item.external && (hAsync("div", { class: "duet-hero-action-arrow" }, hAsync("duet-icon", { icon: actionNewWindowSmall.svg, size: "xx-small", margin: "none", color: "currentColor" })))))))), this.image &&
11714
11721
  this.variation !== "image" &&
11715
11722
  !campaignOrSection &&
11716
11723
  this.variation !== "product" &&
@@ -17978,7 +17985,1178 @@ class DuetToolbarLink {
17978
17985
  }; }
17979
17986
  }
17980
17987
 
17981
- const duetTooltipCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-tooltip,*.sc-duet-tooltip::after,*.sc-duet-tooltip::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-tooltip-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:relative;z-index:200;display:inline-flex;width:auto;margin-top:-16px !important;margin-left:-3px !important;-webkit-tap-highlight-color:transparent}/*!@.duet-tooltip*/.duet-tooltip.sc-duet-tooltip{position:absolute;right:-141px;bottom:100%;z-index:950;display:block;width:282px;min-height:48px;max-height:340px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;line-height:1.25;color:rgb(0, 41, 77);visibility:hidden;background:rgb(255, 255, 255);border:1px solid rgb(225, 227, 230);border-radius:4px;box-shadow:0 2px 10px 0 rgba(0, 41, 77, 0.07);opacity:0;transition:300ms ease;transform:scale(0.9) translateZ(0) translateY(20px);transform-origin:100% 100%}/*!@.duet-tooltip.duet-theme-turva*/.duet-tooltip.duet-theme-turva.sc-duet-tooltip{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58);border-color:rgb(228, 228, 230);box-shadow:0 2px 10px 0 rgba(117, 117, 117, 0.13)}/*!@.duet-tooltip::after*/.duet-tooltip.sc-duet-tooltip::after{position:absolute;right:142px;bottom:-20px;z-index:200;width:0;height:0;content:\"\";border:10px solid transparent;border-top:10px solid rgb(255, 255, 255)}/*!@.duet-tooltip::before*/.duet-tooltip.sc-duet-tooltip::before{position:absolute;right:141px;bottom:-22px;z-index:100;width:0;height:0;content:\"\";border:11px solid transparent;border-top:11px solid rgb(225, 227, 230)}/*!@.duet-theme-turva .duet-tooltip::before*/.duet-theme-turva.sc-duet-tooltip .duet-tooltip.sc-duet-tooltip::before{border-top:11px solid rgb(228, 228, 230)}/*!@.duet-tooltip.duet-tooltip-down*/.duet-tooltip.duet-tooltip-down.sc-duet-tooltip{top:100%;bottom:auto;transform:scale(0.9) translateZ(0) translateY(-20px);transform-origin:100% 0}/*!@.duet-tooltip.duet-tooltip-down::after*/.duet-tooltip.duet-tooltip-down.sc-duet-tooltip::after{top:-20px;bottom:auto;border:10px solid transparent;border-bottom:10px solid rgb(255, 255, 255)}/*!@.duet-tooltip.duet-tooltip-down::before*/.duet-tooltip.duet-tooltip-down.sc-duet-tooltip::before{top:-22px;bottom:auto;border:11px solid transparent;border-bottom:11px solid rgb(225, 227, 230)}/*!@.duet-theme-turva .duet-tooltip.duet-tooltip-down::before*/.duet-theme-turva.sc-duet-tooltip .duet-tooltip.duet-tooltip-down.sc-duet-tooltip::before{border-bottom:11px solid rgb(228, 228, 230)}/*!@.duet-tooltip.duet-tooltip-left*/.duet-tooltip.duet-tooltip-left.sc-duet-tooltip{right:-21px !important;transform-origin:100% 100% !important}/*!@.duet-tooltip.duet-tooltip-left::after*/.duet-tooltip.duet-tooltip-left.sc-duet-tooltip::after{right:22px !important;transform:none !important}/*!@.duet-tooltip.duet-tooltip-left::before*/.duet-tooltip.duet-tooltip-left.sc-duet-tooltip::before{right:21px !important;transform:none !important}/*!@.duet-tooltip.duet-tooltip-right*/.duet-tooltip.duet-tooltip-right.sc-duet-tooltip{right:auto !important;left:-9px !important;transform-origin:100% 100% !important}/*!@.duet-tooltip.duet-tooltip-right::after*/.duet-tooltip.duet-tooltip-right.sc-duet-tooltip::after{right:auto !important;left:22px !important;transform:none !important}/*!@.duet-tooltip.duet-tooltip-right::before*/.duet-tooltip.duet-tooltip-right.sc-duet-tooltip::before{right:auto !important;left:21px !important;transform:none !important}/*!@.duet-tooltip.duet-tooltip-has-label*/.duet-tooltip.duet-tooltip-has-label.sc-duet-tooltip{right:auto !important;left:0;width:282px !important;transform-origin:0 0 !important}/*!@.duet-tooltip.duet-tooltip-has-label::after*/.duet-tooltip.duet-tooltip-has-label.sc-duet-tooltip::after{right:auto !important;left:1px !important;transform:none !important}/*!@.duet-tooltip.duet-tooltip-has-label::before*/.duet-tooltip.duet-tooltip-has-label.sc-duet-tooltip::before{right:auto !important;left:0 !important;transform:none !important}/*!@.duet-tooltip.duet-tooltip-active*/.duet-tooltip.duet-tooltip-active.sc-duet-tooltip{visibility:visible;opacity:1;transition-property:transform, opacity;transform:scale(1.0001) translateZ(0) translateY(-8px)}/*!@.duet-tooltip.duet-tooltip-active.duet-tooltip-down*/.duet-tooltip.duet-tooltip-active.duet-tooltip-down.sc-duet-tooltip{transform:scale(1.0001) translateZ(0) translateY(8px)}/*!@.duet-tooltip-button*/.duet-tooltip-button.sc-duet-tooltip{z-index:100;display:inline-block;align-items:center;justify-content:center;min-width:48px;height:48px;padding:0 !important;margin-right:-12px;line-height:normal !important;color:rgb(0, 119, 179);white-space:nowrap;cursor:pointer;background:transparent !important;border-radius:4px}/*!@.duet-tooltip-button.duet-theme-turva*/.duet-tooltip-button.duet-theme-turva.sc-duet-tooltip{color:rgb(198, 12, 48)}/*!@.duet-tooltip-button:hover*/.duet-tooltip-button.sc-duet-tooltip:hover{color:rgb(0, 77, 128)}/*!@.duet-tooltip-button:hover.duet-theme-turva*/.duet-tooltip-button.sc-duet-tooltip:hover.duet-theme-turva{color:rgb(148, 9, 37)}/*!@.duet-tooltip-button:focus*/.duet-tooltip-button.sc-duet-tooltip:focus{background:transparent !important;outline:0}/*!@:host(.user-is-tabbing) .duet-tooltip-button:focus*/.user-is-tabbing.sc-duet-tooltip-h .duet-tooltip-button.sc-duet-tooltip:focus{background:transparent !important;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179) !important}/*!@:host(.user-is-tabbing) .duet-tooltip-button.duet-theme-turva:focus*/.user-is-tabbing.sc-duet-tooltip-h .duet-tooltip-button.duet-theme-turva.sc-duet-tooltip:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58) !important}/*!@.duet-tooltip-button svg*/.duet-tooltip-button.sc-duet-tooltip svg.sc-duet-tooltip{width:20px;height:20px;pointer-events:none}/*!@.duet-tooltip-button-has-label*/.duet-tooltip-button-has-label.sc-duet-tooltip{margin-right:0}/*!@.duet-tooltip-scrollable*/.duet-tooltip-scrollable.sc-duet-tooltip{padding:20px !important;width:100%;max-height:250px;padding-right:25px !important;overflow-y:auto;-webkit-hyphens:auto;hyphens:auto;border-radius:4px;-webkit-overflow-scrolling:touch}/*!@.duet-tooltip-scrollable:focus*/.duet-tooltip-scrollable.sc-duet-tooltip:focus{outline:none}/*!@:host(.user-is-tabbing) .duet-tooltip-scrollable:focus*/.user-is-tabbing.sc-duet-tooltip-h .duet-tooltip-scrollable.sc-duet-tooltip:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179)}/*!@:host(.user-is-tabbing) .duet-theme-turva .duet-tooltip-scrollable:focus*/.user-is-tabbing.sc-duet-tooltip-h .duet-theme-turva.sc-duet-tooltip .duet-tooltip-scrollable.sc-duet-tooltip:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58)}/*!@.duet-tooltip-scrollable::-webkit-scrollbar*/.duet-tooltip-scrollable.sc-duet-tooltip::-webkit-scrollbar{width:4px}/*!@.duet-tooltip-scrollable::-webkit-scrollbar-track*/.duet-tooltip-scrollable.sc-duet-tooltip::-webkit-scrollbar-track{border-radius:4px}/*!@.duet-tooltip-scrollable::-webkit-scrollbar-thumb*/.duet-tooltip-scrollable.sc-duet-tooltip::-webkit-scrollbar-thumb{background:rgb(225, 227, 230);border-radius:4px}/*!@.duet-theme-turva .duet-tooltip-scrollable::-webkit-scrollbar-thumb*/.duet-theme-turva.sc-duet-tooltip .duet-tooltip-scrollable.sc-duet-tooltip::-webkit-scrollbar-thumb{background:rgb(228, 228, 230)}/*!@.duet-tooltip-label*/.duet-tooltip-label.sc-duet-tooltip{position:relative;z-index:100;display:inline-block;max-width:calc(100% - 30px);margin-left:12px !important;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;line-height:1.25;text-align:left;white-space:normal;vertical-align:top}/*!@.duet-theme-turva .duet-tooltip-label*/.duet-theme-turva.sc-duet-tooltip .duet-tooltip-label.sc-duet-tooltip{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}/*!@.duet-tooltip-close*/.duet-tooltip-close.sc-duet-tooltip{position:absolute;top:8px;right:8px;display:flex;align-items:center;justify-content:center;width:17px;height:17px;min-height:0 !important;padding:0 !important;margin:0 !important;line-height:normal;color:rgb(0, 41, 77);cursor:pointer;background:rgb(245, 248, 250);border-radius:50%;-webkit-appearance:none;appearance:none}/*!@.duet-tooltip-close:focus*/.duet-tooltip-close.sc-duet-tooltip:focus{outline:none;box-shadow:0 0 0 2px rgb(0, 119, 179)}/*!@.duet-theme-turva .duet-tooltip-close:focus*/.duet-theme-turva.sc-duet-tooltip .duet-tooltip-close.sc-duet-tooltip:focus{color:rgb(23, 28, 58);box-shadow:0 0 0 2px rgb(23, 28, 58)}@media (min-width: 48em){/*!@.duet-tooltip.duet-mq-medium*/.duet-tooltip.duet-mq-medium.sc-duet-tooltip{right:-148px;width:320px;transform-origin:50% 100%}/*!@.duet-tooltip.duet-mq-medium::after*/.duet-tooltip.duet-mq-medium.sc-duet-tooltip::after{right:50%;transform:translateX(50%)}/*!@.duet-tooltip.duet-mq-medium::before*/.duet-tooltip.duet-mq-medium.sc-duet-tooltip::before{right:50%;transform:translateX(50%)}/*!@.duet-tooltip.duet-mq-medium.duet-tooltip-down*/.duet-tooltip.duet-mq-medium.duet-tooltip-down.sc-duet-tooltip{transform-origin:50% 0}}@media (min-width: 62em){/*!@.duet-tooltip.duet-mq-large*/.duet-tooltip.duet-mq-large.sc-duet-tooltip{right:-148px;width:320px;transform-origin:50% 100%}/*!@.duet-tooltip.duet-mq-large::after*/.duet-tooltip.duet-mq-large.sc-duet-tooltip::after{right:50%;transform:translateX(50%)}/*!@.duet-tooltip.duet-mq-large::before*/.duet-tooltip.duet-mq-large.sc-duet-tooltip::before{right:50%;transform:translateX(50%)}/*!@.duet-tooltip.duet-mq-large.duet-tooltip-down*/.duet-tooltip.duet-mq-large.duet-tooltip-down.sc-duet-tooltip{transform-origin:50% 0}}";
17988
+ function getAlignment(placement) {
17989
+ return placement.split('-')[1];
17990
+ }
17991
+
17992
+ function getLengthFromAxis(axis) {
17993
+ return axis === 'y' ? 'height' : 'width';
17994
+ }
17995
+
17996
+ function getSide(placement) {
17997
+ return placement.split('-')[0];
17998
+ }
17999
+
18000
+ function getMainAxisFromPlacement(placement) {
18001
+ return ['top', 'bottom'].includes(getSide(placement)) ? 'x' : 'y';
18002
+ }
18003
+
18004
+ function computeCoordsFromPlacement(_ref, placement, rtl) {
18005
+ let {
18006
+ reference,
18007
+ floating
18008
+ } = _ref;
18009
+ const commonX = reference.x + reference.width / 2 - floating.width / 2;
18010
+ const commonY = reference.y + reference.height / 2 - floating.height / 2;
18011
+ const mainAxis = getMainAxisFromPlacement(placement);
18012
+ const length = getLengthFromAxis(mainAxis);
18013
+ const commonAlign = reference[length] / 2 - floating[length] / 2;
18014
+ const side = getSide(placement);
18015
+ const isVertical = mainAxis === 'x';
18016
+ let coords;
18017
+ switch (side) {
18018
+ case 'top':
18019
+ coords = {
18020
+ x: commonX,
18021
+ y: reference.y - floating.height
18022
+ };
18023
+ break;
18024
+ case 'bottom':
18025
+ coords = {
18026
+ x: commonX,
18027
+ y: reference.y + reference.height
18028
+ };
18029
+ break;
18030
+ case 'right':
18031
+ coords = {
18032
+ x: reference.x + reference.width,
18033
+ y: commonY
18034
+ };
18035
+ break;
18036
+ case 'left':
18037
+ coords = {
18038
+ x: reference.x - floating.width,
18039
+ y: commonY
18040
+ };
18041
+ break;
18042
+ default:
18043
+ coords = {
18044
+ x: reference.x,
18045
+ y: reference.y
18046
+ };
18047
+ }
18048
+ switch (getAlignment(placement)) {
18049
+ case 'start':
18050
+ coords[mainAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);
18051
+ break;
18052
+ case 'end':
18053
+ coords[mainAxis] += commonAlign * (rtl && isVertical ? -1 : 1);
18054
+ break;
18055
+ }
18056
+ return coords;
18057
+ }
18058
+
18059
+ /**
18060
+ * Computes the `x` and `y` coordinates that will place the floating element
18061
+ * next to a reference element when it is given a certain positioning strategy.
18062
+ *
18063
+ * This export does not have any `platform` interface logic. You will need to
18064
+ * write one for the platform you are using Floating UI with.
18065
+ */
18066
+ const computePosition$1 = async (reference, floating, config) => {
18067
+ const {
18068
+ placement = 'bottom',
18069
+ strategy = 'absolute',
18070
+ middleware = [],
18071
+ platform
18072
+ } = config;
18073
+ const validMiddleware = middleware.filter(Boolean);
18074
+ const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));
18075
+ let rects = await platform.getElementRects({
18076
+ reference,
18077
+ floating,
18078
+ strategy
18079
+ });
18080
+ let {
18081
+ x,
18082
+ y
18083
+ } = computeCoordsFromPlacement(rects, placement, rtl);
18084
+ let statefulPlacement = placement;
18085
+ let middlewareData = {};
18086
+ let resetCount = 0;
18087
+ for (let i = 0; i < validMiddleware.length; i++) {
18088
+ const {
18089
+ name,
18090
+ fn
18091
+ } = validMiddleware[i];
18092
+ const {
18093
+ x: nextX,
18094
+ y: nextY,
18095
+ data,
18096
+ reset
18097
+ } = await fn({
18098
+ x,
18099
+ y,
18100
+ initialPlacement: placement,
18101
+ placement: statefulPlacement,
18102
+ strategy,
18103
+ middlewareData,
18104
+ rects,
18105
+ platform,
18106
+ elements: {
18107
+ reference,
18108
+ floating
18109
+ }
18110
+ });
18111
+ x = nextX != null ? nextX : x;
18112
+ y = nextY != null ? nextY : y;
18113
+ middlewareData = {
18114
+ ...middlewareData,
18115
+ [name]: {
18116
+ ...middlewareData[name],
18117
+ ...data
18118
+ }
18119
+ };
18120
+ if (reset && resetCount <= 50) {
18121
+ resetCount++;
18122
+ if (typeof reset === 'object') {
18123
+ if (reset.placement) {
18124
+ statefulPlacement = reset.placement;
18125
+ }
18126
+ if (reset.rects) {
18127
+ rects = reset.rects === true ? await platform.getElementRects({
18128
+ reference,
18129
+ floating,
18130
+ strategy
18131
+ }) : reset.rects;
18132
+ }
18133
+ ({
18134
+ x,
18135
+ y
18136
+ } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));
18137
+ }
18138
+ i = -1;
18139
+ continue;
18140
+ }
18141
+ }
18142
+ return {
18143
+ x,
18144
+ y,
18145
+ placement: statefulPlacement,
18146
+ strategy,
18147
+ middlewareData
18148
+ };
18149
+ };
18150
+
18151
+ function expandPaddingObject(padding) {
18152
+ return {
18153
+ top: 0,
18154
+ right: 0,
18155
+ bottom: 0,
18156
+ left: 0,
18157
+ ...padding
18158
+ };
18159
+ }
18160
+
18161
+ function getSideObjectFromPadding(padding) {
18162
+ return typeof padding !== 'number' ? expandPaddingObject(padding) : {
18163
+ top: padding,
18164
+ right: padding,
18165
+ bottom: padding,
18166
+ left: padding
18167
+ };
18168
+ }
18169
+
18170
+ function rectToClientRect(rect) {
18171
+ return {
18172
+ ...rect,
18173
+ top: rect.y,
18174
+ left: rect.x,
18175
+ right: rect.x + rect.width,
18176
+ bottom: rect.y + rect.height
18177
+ };
18178
+ }
18179
+
18180
+ /**
18181
+ * Resolves with an object of overflow side offsets that determine how much the
18182
+ * element is overflowing a given clipping boundary on each side.
18183
+ * - positive = overflowing the boundary by that number of pixels
18184
+ * - negative = how many pixels left before it will overflow
18185
+ * - 0 = lies flush with the boundary
18186
+ * @see https://floating-ui.com/docs/detectOverflow
18187
+ */
18188
+ async function detectOverflow(state, options) {
18189
+ var _await$platform$isEle;
18190
+ if (options === void 0) {
18191
+ options = {};
18192
+ }
18193
+ const {
18194
+ x,
18195
+ y,
18196
+ platform,
18197
+ rects,
18198
+ elements,
18199
+ strategy
18200
+ } = state;
18201
+ const {
18202
+ boundary = 'clippingAncestors',
18203
+ rootBoundary = 'viewport',
18204
+ elementContext = 'floating',
18205
+ altBoundary = false,
18206
+ padding = 0
18207
+ } = options;
18208
+ const paddingObject = getSideObjectFromPadding(padding);
18209
+ const altContext = elementContext === 'floating' ? 'reference' : 'floating';
18210
+ const element = elements[altBoundary ? altContext : elementContext];
18211
+ const clippingClientRect = rectToClientRect(await platform.getClippingRect({
18212
+ element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),
18213
+ boundary,
18214
+ rootBoundary,
18215
+ strategy
18216
+ }));
18217
+ const rect = elementContext === 'floating' ? {
18218
+ ...rects.floating,
18219
+ x,
18220
+ y
18221
+ } : rects.reference;
18222
+ const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));
18223
+ const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {
18224
+ x: 1,
18225
+ y: 1
18226
+ } : {
18227
+ x: 1,
18228
+ y: 1
18229
+ };
18230
+ const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({
18231
+ rect,
18232
+ offsetParent,
18233
+ strategy
18234
+ }) : rect);
18235
+ return {
18236
+ top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,
18237
+ bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,
18238
+ left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,
18239
+ right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
18240
+ };
18241
+ }
18242
+
18243
+ const min$1 = Math.min;
18244
+ const max$1 = Math.max;
18245
+
18246
+ function within(min$1$1, value, max$1$1) {
18247
+ return max$1(min$1$1, min$1(value, max$1$1));
18248
+ }
18249
+
18250
+ /**
18251
+ * Provides data to position an inner element of the floating element so that it
18252
+ * appears centered to the reference element.
18253
+ * @see https://floating-ui.com/docs/arrow
18254
+ */
18255
+ const arrow = options => ({
18256
+ name: 'arrow',
18257
+ options,
18258
+ async fn(state) {
18259
+ // Since `element` is required, we don't Partial<> the type.
18260
+ const {
18261
+ element,
18262
+ padding = 0
18263
+ } = options || {};
18264
+ const {
18265
+ x,
18266
+ y,
18267
+ placement,
18268
+ rects,
18269
+ platform,
18270
+ elements
18271
+ } = state;
18272
+ if (element == null) {
18273
+ return {};
18274
+ }
18275
+ const paddingObject = getSideObjectFromPadding(padding);
18276
+ const coords = {
18277
+ x,
18278
+ y
18279
+ };
18280
+ const axis = getMainAxisFromPlacement(placement);
18281
+ const length = getLengthFromAxis(axis);
18282
+ const arrowDimensions = await platform.getDimensions(element);
18283
+ const isYAxis = axis === 'y';
18284
+ const minProp = isYAxis ? 'top' : 'left';
18285
+ const maxProp = isYAxis ? 'bottom' : 'right';
18286
+ const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';
18287
+ const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];
18288
+ const startDiff = coords[axis] - rects.reference[axis];
18289
+ const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));
18290
+ let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;
18291
+
18292
+ // DOM platform can return `window` as the `offsetParent`.
18293
+ if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {
18294
+ clientSize = elements.floating[clientProp] || rects.floating[length];
18295
+ }
18296
+ const centerToReference = endDiff / 2 - startDiff / 2;
18297
+
18298
+ // Make sure the arrow doesn't overflow the floating element if the center
18299
+ // point is outside the floating element's bounds.
18300
+ const min = paddingObject[minProp];
18301
+ const max = clientSize - arrowDimensions[length] - paddingObject[maxProp];
18302
+ const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;
18303
+ const offset = within(min, center, max);
18304
+
18305
+ // If the reference is small enough that the arrow's padding causes it to
18306
+ // to point to nothing for an aligned placement, adjust the offset of the
18307
+ // floating element itself. This stops `shift()` from taking action, but can
18308
+ // be worked around by calling it again after the `arrow()` if desired.
18309
+ const shouldAddOffset = getAlignment(placement) != null && center != offset && rects.reference[length] / 2 - (center < min ? paddingObject[minProp] : paddingObject[maxProp]) - arrowDimensions[length] / 2 < 0;
18310
+ const alignmentOffset = shouldAddOffset ? center < min ? min - center : max - center : 0;
18311
+ return {
18312
+ [axis]: coords[axis] - alignmentOffset,
18313
+ data: {
18314
+ [axis]: offset,
18315
+ centerOffset: center - offset
18316
+ }
18317
+ };
18318
+ }
18319
+ });
18320
+
18321
+ const oppositeSideMap = {
18322
+ left: 'right',
18323
+ right: 'left',
18324
+ bottom: 'top',
18325
+ top: 'bottom'
18326
+ };
18327
+ function getOppositePlacement(placement) {
18328
+ return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);
18329
+ }
18330
+
18331
+ function getAlignmentSides(placement, rects, rtl) {
18332
+ if (rtl === void 0) {
18333
+ rtl = false;
18334
+ }
18335
+ const alignment = getAlignment(placement);
18336
+ const mainAxis = getMainAxisFromPlacement(placement);
18337
+ const length = getLengthFromAxis(mainAxis);
18338
+ let mainAlignmentSide = mainAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';
18339
+ if (rects.reference[length] > rects.floating[length]) {
18340
+ mainAlignmentSide = getOppositePlacement(mainAlignmentSide);
18341
+ }
18342
+ return {
18343
+ main: mainAlignmentSide,
18344
+ cross: getOppositePlacement(mainAlignmentSide)
18345
+ };
18346
+ }
18347
+
18348
+ const oppositeAlignmentMap = {
18349
+ start: 'end',
18350
+ end: 'start'
18351
+ };
18352
+ function getOppositeAlignmentPlacement(placement) {
18353
+ return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);
18354
+ }
18355
+
18356
+ function getExpandedPlacements(placement) {
18357
+ const oppositePlacement = getOppositePlacement(placement);
18358
+ return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];
18359
+ }
18360
+
18361
+ function getSideList(side, isStart, rtl) {
18362
+ const lr = ['left', 'right'];
18363
+ const rl = ['right', 'left'];
18364
+ const tb = ['top', 'bottom'];
18365
+ const bt = ['bottom', 'top'];
18366
+ switch (side) {
18367
+ case 'top':
18368
+ case 'bottom':
18369
+ if (rtl) return isStart ? rl : lr;
18370
+ return isStart ? lr : rl;
18371
+ case 'left':
18372
+ case 'right':
18373
+ return isStart ? tb : bt;
18374
+ default:
18375
+ return [];
18376
+ }
18377
+ }
18378
+ function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {
18379
+ const alignment = getAlignment(placement);
18380
+ let list = getSideList(getSide(placement), direction === 'start', rtl);
18381
+ if (alignment) {
18382
+ list = list.map(side => side + "-" + alignment);
18383
+ if (flipAlignment) {
18384
+ list = list.concat(list.map(getOppositeAlignmentPlacement));
18385
+ }
18386
+ }
18387
+ return list;
18388
+ }
18389
+
18390
+ /**
18391
+ * Optimizes the visibility of the floating element by flipping the `placement`
18392
+ * in order to keep it in view when the preferred placement(s) will overflow the
18393
+ * clipping boundary. Alternative to `autoPlacement`.
18394
+ * @see https://floating-ui.com/docs/flip
18395
+ */
18396
+ const flip = function (options) {
18397
+ if (options === void 0) {
18398
+ options = {};
18399
+ }
18400
+ return {
18401
+ name: 'flip',
18402
+ options,
18403
+ async fn(state) {
18404
+ var _middlewareData$flip;
18405
+ const {
18406
+ placement,
18407
+ middlewareData,
18408
+ rects,
18409
+ initialPlacement,
18410
+ platform,
18411
+ elements
18412
+ } = state;
18413
+ const {
18414
+ mainAxis: checkMainAxis = true,
18415
+ crossAxis: checkCrossAxis = true,
18416
+ fallbackPlacements: specifiedFallbackPlacements,
18417
+ fallbackStrategy = 'bestFit',
18418
+ fallbackAxisSideDirection = 'none',
18419
+ flipAlignment = true,
18420
+ ...detectOverflowOptions
18421
+ } = options;
18422
+ const side = getSide(placement);
18423
+ const isBasePlacement = getSide(initialPlacement) === initialPlacement;
18424
+ const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));
18425
+ const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));
18426
+ if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== 'none') {
18427
+ fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));
18428
+ }
18429
+ const placements = [initialPlacement, ...fallbackPlacements];
18430
+ const overflow = await detectOverflow(state, detectOverflowOptions);
18431
+ const overflows = [];
18432
+ let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];
18433
+ if (checkMainAxis) {
18434
+ overflows.push(overflow[side]);
18435
+ }
18436
+ if (checkCrossAxis) {
18437
+ const {
18438
+ main,
18439
+ cross
18440
+ } = getAlignmentSides(placement, rects, rtl);
18441
+ overflows.push(overflow[main], overflow[cross]);
18442
+ }
18443
+ overflowsData = [...overflowsData, {
18444
+ placement,
18445
+ overflows
18446
+ }];
18447
+
18448
+ // One or more sides is overflowing.
18449
+ if (!overflows.every(side => side <= 0)) {
18450
+ var _middlewareData$flip2, _overflowsData$filter;
18451
+ const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
18452
+ const nextPlacement = placements[nextIndex];
18453
+ if (nextPlacement) {
18454
+ // Try next placement and re-run the lifecycle.
18455
+ return {
18456
+ data: {
18457
+ index: nextIndex,
18458
+ overflows: overflowsData
18459
+ },
18460
+ reset: {
18461
+ placement: nextPlacement
18462
+ }
18463
+ };
18464
+ }
18465
+
18466
+ // First, find the candidates that fit on the mainAxis side of overflow,
18467
+ // then find the placement that fits the best on the main crossAxis side.
18468
+ let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;
18469
+
18470
+ // Otherwise fallback.
18471
+ if (!resetPlacement) {
18472
+ switch (fallbackStrategy) {
18473
+ case 'bestFit':
18474
+ {
18475
+ var _overflowsData$map$so;
18476
+ const placement = (_overflowsData$map$so = overflowsData.map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];
18477
+ if (placement) {
18478
+ resetPlacement = placement;
18479
+ }
18480
+ break;
18481
+ }
18482
+ case 'initialPlacement':
18483
+ resetPlacement = initialPlacement;
18484
+ break;
18485
+ }
18486
+ }
18487
+ if (placement !== resetPlacement) {
18488
+ return {
18489
+ reset: {
18490
+ placement: resetPlacement
18491
+ }
18492
+ };
18493
+ }
18494
+ }
18495
+ return {};
18496
+ }
18497
+ };
18498
+ };
18499
+
18500
+ function getCrossAxis(axis) {
18501
+ return axis === 'x' ? 'y' : 'x';
18502
+ }
18503
+
18504
+ /**
18505
+ * Optimizes the visibility of the floating element by shifting it in order to
18506
+ * keep it in view when it will overflow the clipping boundary.
18507
+ * @see https://floating-ui.com/docs/shift
18508
+ */
18509
+ const shift = function (options) {
18510
+ if (options === void 0) {
18511
+ options = {};
18512
+ }
18513
+ return {
18514
+ name: 'shift',
18515
+ options,
18516
+ async fn(state) {
18517
+ const {
18518
+ x,
18519
+ y,
18520
+ placement
18521
+ } = state;
18522
+ const {
18523
+ mainAxis: checkMainAxis = true,
18524
+ crossAxis: checkCrossAxis = false,
18525
+ limiter = {
18526
+ fn: _ref => {
18527
+ let {
18528
+ x,
18529
+ y
18530
+ } = _ref;
18531
+ return {
18532
+ x,
18533
+ y
18534
+ };
18535
+ }
18536
+ },
18537
+ ...detectOverflowOptions
18538
+ } = options;
18539
+ const coords = {
18540
+ x,
18541
+ y
18542
+ };
18543
+ const overflow = await detectOverflow(state, detectOverflowOptions);
18544
+ const mainAxis = getMainAxisFromPlacement(getSide(placement));
18545
+ const crossAxis = getCrossAxis(mainAxis);
18546
+ let mainAxisCoord = coords[mainAxis];
18547
+ let crossAxisCoord = coords[crossAxis];
18548
+ if (checkMainAxis) {
18549
+ const minSide = mainAxis === 'y' ? 'top' : 'left';
18550
+ const maxSide = mainAxis === 'y' ? 'bottom' : 'right';
18551
+ const min = mainAxisCoord + overflow[minSide];
18552
+ const max = mainAxisCoord - overflow[maxSide];
18553
+ mainAxisCoord = within(min, mainAxisCoord, max);
18554
+ }
18555
+ if (checkCrossAxis) {
18556
+ const minSide = crossAxis === 'y' ? 'top' : 'left';
18557
+ const maxSide = crossAxis === 'y' ? 'bottom' : 'right';
18558
+ const min = crossAxisCoord + overflow[minSide];
18559
+ const max = crossAxisCoord - overflow[maxSide];
18560
+ crossAxisCoord = within(min, crossAxisCoord, max);
18561
+ }
18562
+ const limitedCoords = limiter.fn({
18563
+ ...state,
18564
+ [mainAxis]: mainAxisCoord,
18565
+ [crossAxis]: crossAxisCoord
18566
+ });
18567
+ return {
18568
+ ...limitedCoords,
18569
+ data: {
18570
+ x: limitedCoords.x - x,
18571
+ y: limitedCoords.y - y
18572
+ }
18573
+ };
18574
+ }
18575
+ };
18576
+ };
18577
+
18578
+ function getWindow(node) {
18579
+ var _node$ownerDocument;
18580
+ return ((_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;
18581
+ }
18582
+
18583
+ function getComputedStyle$1(element) {
18584
+ return getWindow(element).getComputedStyle(element);
18585
+ }
18586
+
18587
+ function isNode(value) {
18588
+ return value instanceof getWindow(value).Node;
18589
+ }
18590
+ function getNodeName(node) {
18591
+ return isNode(node) ? (node.nodeName || '').toLowerCase() : '';
18592
+ }
18593
+
18594
+ function isHTMLElement(value) {
18595
+ return value instanceof getWindow(value).HTMLElement;
18596
+ }
18597
+ function isElement(value) {
18598
+ return value instanceof getWindow(value).Element;
18599
+ }
18600
+ function isShadowRoot(node) {
18601
+ // Browsers without `ShadowRoot` support.
18602
+ if (typeof ShadowRoot === 'undefined') {
18603
+ return false;
18604
+ }
18605
+ const OwnElement = getWindow(node).ShadowRoot;
18606
+ return node instanceof OwnElement || node instanceof ShadowRoot;
18607
+ }
18608
+ function isOverflowElement(element) {
18609
+ const {
18610
+ overflow,
18611
+ overflowX,
18612
+ overflowY,
18613
+ display
18614
+ } = getComputedStyle$1(element);
18615
+ return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);
18616
+ }
18617
+ function isTableElement(element) {
18618
+ return ['table', 'td', 'th'].includes(getNodeName(element));
18619
+ }
18620
+ function isContainingBlock(element) {
18621
+ const safari = isSafari();
18622
+ const css = getComputedStyle$1(element);
18623
+
18624
+ // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
18625
+ return css.transform !== 'none' || css.perspective !== 'none' || !safari && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !safari && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));
18626
+ }
18627
+ function isSafari() {
18628
+ if (typeof CSS === 'undefined' || !CSS.supports) return false;
18629
+ return CSS.supports('-webkit-backdrop-filter', 'none');
18630
+ }
18631
+ function isLastTraversableNode(node) {
18632
+ return ['html', 'body', '#document'].includes(getNodeName(node));
18633
+ }
18634
+
18635
+ const min = Math.min;
18636
+ const max = Math.max;
18637
+ const round = Math.round;
18638
+
18639
+ function getCssDimensions(element) {
18640
+ const css = getComputedStyle$1(element);
18641
+ // In testing environments, the `width` and `height` properties are empty
18642
+ // strings for SVG elements, returning NaN. Fallback to `0` in this case.
18643
+ let width = parseFloat(css.width) || 0;
18644
+ let height = parseFloat(css.height) || 0;
18645
+ const hasOffset = isHTMLElement(element);
18646
+ const offsetWidth = hasOffset ? element.offsetWidth : width;
18647
+ const offsetHeight = hasOffset ? element.offsetHeight : height;
18648
+ const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;
18649
+ if (shouldFallback) {
18650
+ width = offsetWidth;
18651
+ height = offsetHeight;
18652
+ }
18653
+ return {
18654
+ width,
18655
+ height,
18656
+ fallback: shouldFallback
18657
+ };
18658
+ }
18659
+
18660
+ function unwrapElement(element) {
18661
+ return !isElement(element) ? element.contextElement : element;
18662
+ }
18663
+
18664
+ const FALLBACK_SCALE = {
18665
+ x: 1,
18666
+ y: 1
18667
+ };
18668
+ function getScale(element) {
18669
+ const domElement = unwrapElement(element);
18670
+ if (!isHTMLElement(domElement)) {
18671
+ return FALLBACK_SCALE;
18672
+ }
18673
+ const rect = domElement.getBoundingClientRect();
18674
+ const {
18675
+ width,
18676
+ height,
18677
+ fallback
18678
+ } = getCssDimensions(domElement);
18679
+ let x = (fallback ? round(rect.width) : rect.width) / width;
18680
+ let y = (fallback ? round(rect.height) : rect.height) / height;
18681
+
18682
+ // 0, NaN, or Infinity should always fallback to 1.
18683
+
18684
+ if (!x || !Number.isFinite(x)) {
18685
+ x = 1;
18686
+ }
18687
+ if (!y || !Number.isFinite(y)) {
18688
+ y = 1;
18689
+ }
18690
+ return {
18691
+ x,
18692
+ y
18693
+ };
18694
+ }
18695
+
18696
+ const noOffsets = {
18697
+ x: 0,
18698
+ y: 0
18699
+ };
18700
+ function getVisualOffsets(element, isFixed, floatingOffsetParent) {
18701
+ var _win$visualViewport, _win$visualViewport2;
18702
+ if (isFixed === void 0) {
18703
+ isFixed = true;
18704
+ }
18705
+ if (!isSafari()) {
18706
+ return noOffsets;
18707
+ }
18708
+ const win = element ? getWindow(element) : window;
18709
+ if (!floatingOffsetParent || isFixed && floatingOffsetParent !== win) {
18710
+ return noOffsets;
18711
+ }
18712
+ return {
18713
+ x: ((_win$visualViewport = win.visualViewport) == null ? void 0 : _win$visualViewport.offsetLeft) || 0,
18714
+ y: ((_win$visualViewport2 = win.visualViewport) == null ? void 0 : _win$visualViewport2.offsetTop) || 0
18715
+ };
18716
+ }
18717
+
18718
+ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {
18719
+ if (includeScale === void 0) {
18720
+ includeScale = false;
18721
+ }
18722
+ if (isFixedStrategy === void 0) {
18723
+ isFixedStrategy = false;
18724
+ }
18725
+ const clientRect = element.getBoundingClientRect();
18726
+ const domElement = unwrapElement(element);
18727
+ let scale = FALLBACK_SCALE;
18728
+ if (includeScale) {
18729
+ if (offsetParent) {
18730
+ if (isElement(offsetParent)) {
18731
+ scale = getScale(offsetParent);
18732
+ }
18733
+ } else {
18734
+ scale = getScale(element);
18735
+ }
18736
+ }
18737
+ const visualOffsets = getVisualOffsets(domElement, isFixedStrategy, offsetParent);
18738
+ let x = (clientRect.left + visualOffsets.x) / scale.x;
18739
+ let y = (clientRect.top + visualOffsets.y) / scale.y;
18740
+ let width = clientRect.width / scale.x;
18741
+ let height = clientRect.height / scale.y;
18742
+ if (domElement) {
18743
+ const win = getWindow(domElement);
18744
+ const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;
18745
+ let currentIFrame = win.frameElement;
18746
+ while (currentIFrame && offsetParent && offsetWin !== win) {
18747
+ const iframeScale = getScale(currentIFrame);
18748
+ const iframeRect = currentIFrame.getBoundingClientRect();
18749
+ const css = getComputedStyle(currentIFrame);
18750
+ iframeRect.x += (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;
18751
+ iframeRect.y += (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;
18752
+ x *= iframeScale.x;
18753
+ y *= iframeScale.y;
18754
+ width *= iframeScale.x;
18755
+ height *= iframeScale.y;
18756
+ x += iframeRect.x;
18757
+ y += iframeRect.y;
18758
+ currentIFrame = getWindow(currentIFrame).frameElement;
18759
+ }
18760
+ }
18761
+ return rectToClientRect({
18762
+ width,
18763
+ height,
18764
+ x,
18765
+ y
18766
+ });
18767
+ }
18768
+
18769
+ function getDocumentElement(node) {
18770
+ return ((isNode(node) ? node.ownerDocument : node.document) || window.document).documentElement;
18771
+ }
18772
+
18773
+ function getNodeScroll(element) {
18774
+ if (isElement(element)) {
18775
+ return {
18776
+ scrollLeft: element.scrollLeft,
18777
+ scrollTop: element.scrollTop
18778
+ };
18779
+ }
18780
+ return {
18781
+ scrollLeft: element.pageXOffset,
18782
+ scrollTop: element.pageYOffset
18783
+ };
18784
+ }
18785
+
18786
+ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
18787
+ let {
18788
+ rect,
18789
+ offsetParent,
18790
+ strategy
18791
+ } = _ref;
18792
+ const isOffsetParentAnElement = isHTMLElement(offsetParent);
18793
+ const documentElement = getDocumentElement(offsetParent);
18794
+ if (offsetParent === documentElement) {
18795
+ return rect;
18796
+ }
18797
+ let scroll = {
18798
+ scrollLeft: 0,
18799
+ scrollTop: 0
18800
+ };
18801
+ let scale = {
18802
+ x: 1,
18803
+ y: 1
18804
+ };
18805
+ const offsets = {
18806
+ x: 0,
18807
+ y: 0
18808
+ };
18809
+ if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {
18810
+ if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {
18811
+ scroll = getNodeScroll(offsetParent);
18812
+ }
18813
+ if (isHTMLElement(offsetParent)) {
18814
+ const offsetRect = getBoundingClientRect(offsetParent);
18815
+ scale = getScale(offsetParent);
18816
+ offsets.x = offsetRect.x + offsetParent.clientLeft;
18817
+ offsets.y = offsetRect.y + offsetParent.clientTop;
18818
+ }
18819
+ }
18820
+ return {
18821
+ width: rect.width * scale.x,
18822
+ height: rect.height * scale.y,
18823
+ x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,
18824
+ y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y
18825
+ };
18826
+ }
18827
+
18828
+ function getWindowScrollBarX(element) {
18829
+ // If <html> has a CSS width greater than the viewport, then this will be
18830
+ // incorrect for RTL.
18831
+ return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;
18832
+ }
18833
+
18834
+ // Gets the entire size of the scrollable document area, even extending outside
18835
+ // of the `<html>` and `<body>` rect bounds if horizontally scrollable.
18836
+ function getDocumentRect(element) {
18837
+ const html = getDocumentElement(element);
18838
+ const scroll = getNodeScroll(element);
18839
+ const body = element.ownerDocument.body;
18840
+ const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);
18841
+ const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);
18842
+ let x = -scroll.scrollLeft + getWindowScrollBarX(element);
18843
+ const y = -scroll.scrollTop;
18844
+ if (getComputedStyle$1(body).direction === 'rtl') {
18845
+ x += max(html.clientWidth, body.clientWidth) - width;
18846
+ }
18847
+ return {
18848
+ width,
18849
+ height,
18850
+ x,
18851
+ y
18852
+ };
18853
+ }
18854
+
18855
+ function getParentNode(node) {
18856
+ if (getNodeName(node) === 'html') {
18857
+ return node;
18858
+ }
18859
+ const result =
18860
+ // Step into the shadow DOM of the parent of a slotted node.
18861
+ node.assignedSlot ||
18862
+ // DOM Element detected.
18863
+ node.parentNode ||
18864
+ // ShadowRoot detected.
18865
+ isShadowRoot(node) && node.host ||
18866
+ // Fallback.
18867
+ getDocumentElement(node);
18868
+ return isShadowRoot(result) ? result.host : result;
18869
+ }
18870
+
18871
+ function getNearestOverflowAncestor(node) {
18872
+ const parentNode = getParentNode(node);
18873
+ if (isLastTraversableNode(parentNode)) {
18874
+ // `getParentNode` will never return a `Document` due to the fallback
18875
+ // check, so it's either the <html> or <body> element.
18876
+ return parentNode.ownerDocument.body;
18877
+ }
18878
+ if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {
18879
+ return parentNode;
18880
+ }
18881
+ return getNearestOverflowAncestor(parentNode);
18882
+ }
18883
+
18884
+ function getOverflowAncestors(node, list) {
18885
+ var _node$ownerDocument;
18886
+ if (list === void 0) {
18887
+ list = [];
18888
+ }
18889
+ const scrollableAncestor = getNearestOverflowAncestor(node);
18890
+ const isBody = scrollableAncestor === ((_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.body);
18891
+ const win = getWindow(scrollableAncestor);
18892
+ if (isBody) {
18893
+ return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : []);
18894
+ }
18895
+ return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor));
18896
+ }
18897
+
18898
+ function getViewportRect(element, strategy) {
18899
+ const win = getWindow(element);
18900
+ const html = getDocumentElement(element);
18901
+ const visualViewport = win.visualViewport;
18902
+ let width = html.clientWidth;
18903
+ let height = html.clientHeight;
18904
+ let x = 0;
18905
+ let y = 0;
18906
+ if (visualViewport) {
18907
+ width = visualViewport.width;
18908
+ height = visualViewport.height;
18909
+ const visualViewportBased = isSafari();
18910
+ if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {
18911
+ x = visualViewport.offsetLeft;
18912
+ y = visualViewport.offsetTop;
18913
+ }
18914
+ }
18915
+ return {
18916
+ width,
18917
+ height,
18918
+ x,
18919
+ y
18920
+ };
18921
+ }
18922
+
18923
+ // Returns the inner client rect, subtracting scrollbars if present.
18924
+ function getInnerBoundingClientRect(element, strategy) {
18925
+ const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');
18926
+ const top = clientRect.top + element.clientTop;
18927
+ const left = clientRect.left + element.clientLeft;
18928
+ const scale = isHTMLElement(element) ? getScale(element) : {
18929
+ x: 1,
18930
+ y: 1
18931
+ };
18932
+ const width = element.clientWidth * scale.x;
18933
+ const height = element.clientHeight * scale.y;
18934
+ const x = left * scale.x;
18935
+ const y = top * scale.y;
18936
+ return {
18937
+ width,
18938
+ height,
18939
+ x,
18940
+ y
18941
+ };
18942
+ }
18943
+ function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {
18944
+ let rect;
18945
+ if (clippingAncestor === 'viewport') {
18946
+ rect = getViewportRect(element, strategy);
18947
+ } else if (clippingAncestor === 'document') {
18948
+ rect = getDocumentRect(getDocumentElement(element));
18949
+ } else if (isElement(clippingAncestor)) {
18950
+ rect = getInnerBoundingClientRect(clippingAncestor, strategy);
18951
+ } else {
18952
+ const visualOffsets = getVisualOffsets(element);
18953
+ rect = {
18954
+ ...clippingAncestor,
18955
+ x: clippingAncestor.x - visualOffsets.x,
18956
+ y: clippingAncestor.y - visualOffsets.y
18957
+ };
18958
+ }
18959
+ return rectToClientRect(rect);
18960
+ }
18961
+ function hasFixedPositionAncestor(element, stopNode) {
18962
+ const parentNode = getParentNode(element);
18963
+ if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {
18964
+ return false;
18965
+ }
18966
+ return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);
18967
+ }
18968
+
18969
+ // A "clipping ancestor" is an `overflow` element with the characteristic of
18970
+ // clipping (or hiding) child elements. This returns all clipping ancestors
18971
+ // of the given element up the tree.
18972
+ function getClippingElementAncestors(element, cache) {
18973
+ const cachedResult = cache.get(element);
18974
+ if (cachedResult) {
18975
+ return cachedResult;
18976
+ }
18977
+ let result = getOverflowAncestors(element).filter(el => isElement(el) && getNodeName(el) !== 'body');
18978
+ let currentContainingBlockComputedStyle = null;
18979
+ const elementIsFixed = getComputedStyle$1(element).position === 'fixed';
18980
+ let currentNode = elementIsFixed ? getParentNode(element) : element;
18981
+
18982
+ // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
18983
+ while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {
18984
+ const computedStyle = getComputedStyle$1(currentNode);
18985
+ const currentNodeIsContaining = isContainingBlock(currentNode);
18986
+ if (!currentNodeIsContaining && computedStyle.position === 'fixed') {
18987
+ currentContainingBlockComputedStyle = null;
18988
+ }
18989
+ const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
18990
+ if (shouldDropCurrentNode) {
18991
+ // Drop non-containing blocks.
18992
+ result = result.filter(ancestor => ancestor !== currentNode);
18993
+ } else {
18994
+ // Record last containing block for next iteration.
18995
+ currentContainingBlockComputedStyle = computedStyle;
18996
+ }
18997
+ currentNode = getParentNode(currentNode);
18998
+ }
18999
+ cache.set(element, result);
19000
+ return result;
19001
+ }
19002
+
19003
+ // Gets the maximum area that the element is visible in due to any number of
19004
+ // clipping ancestors.
19005
+ function getClippingRect(_ref) {
19006
+ let {
19007
+ element,
19008
+ boundary,
19009
+ rootBoundary,
19010
+ strategy
19011
+ } = _ref;
19012
+ const elementClippingAncestors = boundary === 'clippingAncestors' ? getClippingElementAncestors(element, this._c) : [].concat(boundary);
19013
+ const clippingAncestors = [...elementClippingAncestors, rootBoundary];
19014
+ const firstClippingAncestor = clippingAncestors[0];
19015
+ const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {
19016
+ const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);
19017
+ accRect.top = max(rect.top, accRect.top);
19018
+ accRect.right = min(rect.right, accRect.right);
19019
+ accRect.bottom = min(rect.bottom, accRect.bottom);
19020
+ accRect.left = max(rect.left, accRect.left);
19021
+ return accRect;
19022
+ }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));
19023
+ return {
19024
+ width: clippingRect.right - clippingRect.left,
19025
+ height: clippingRect.bottom - clippingRect.top,
19026
+ x: clippingRect.left,
19027
+ y: clippingRect.top
19028
+ };
19029
+ }
19030
+
19031
+ function getDimensions(element) {
19032
+ return getCssDimensions(element);
19033
+ }
19034
+
19035
+ function getTrueOffsetParent(element, polyfill) {
19036
+ if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {
19037
+ return null;
19038
+ }
19039
+ if (polyfill) {
19040
+ return polyfill(element);
19041
+ }
19042
+ return element.offsetParent;
19043
+ }
19044
+ function getContainingBlock(element) {
19045
+ let currentNode = getParentNode(element);
19046
+ while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {
19047
+ if (isContainingBlock(currentNode)) {
19048
+ return currentNode;
19049
+ } else {
19050
+ currentNode = getParentNode(currentNode);
19051
+ }
19052
+ }
19053
+ return null;
19054
+ }
19055
+
19056
+ // Gets the closest ancestor positioned element. Handles some edge cases,
19057
+ // such as table ancestors and cross browser bugs.
19058
+ function getOffsetParent(element, polyfill) {
19059
+ const window = getWindow(element);
19060
+ if (!isHTMLElement(element)) {
19061
+ return window;
19062
+ }
19063
+ let offsetParent = getTrueOffsetParent(element, polyfill);
19064
+ while (offsetParent && isTableElement(offsetParent) && getComputedStyle$1(offsetParent).position === 'static') {
19065
+ offsetParent = getTrueOffsetParent(offsetParent, polyfill);
19066
+ }
19067
+ if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle$1(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {
19068
+ return window;
19069
+ }
19070
+ return offsetParent || getContainingBlock(element) || window;
19071
+ }
19072
+
19073
+ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
19074
+ const isOffsetParentAnElement = isHTMLElement(offsetParent);
19075
+ const documentElement = getDocumentElement(offsetParent);
19076
+ const isFixed = strategy === 'fixed';
19077
+ const rect = getBoundingClientRect(element, true, isFixed, offsetParent);
19078
+ let scroll = {
19079
+ scrollLeft: 0,
19080
+ scrollTop: 0
19081
+ };
19082
+ const offsets = {
19083
+ x: 0,
19084
+ y: 0
19085
+ };
19086
+ if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
19087
+ if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {
19088
+ scroll = getNodeScroll(offsetParent);
19089
+ }
19090
+ if (isHTMLElement(offsetParent)) {
19091
+ const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);
19092
+ offsets.x = offsetRect.x + offsetParent.clientLeft;
19093
+ offsets.y = offsetRect.y + offsetParent.clientTop;
19094
+ } else if (documentElement) {
19095
+ offsets.x = getWindowScrollBarX(documentElement);
19096
+ }
19097
+ }
19098
+ return {
19099
+ x: rect.left + scroll.scrollLeft - offsets.x,
19100
+ y: rect.top + scroll.scrollTop - offsets.y,
19101
+ width: rect.width,
19102
+ height: rect.height
19103
+ };
19104
+ }
19105
+
19106
+ const platform = {
19107
+ getClippingRect,
19108
+ convertOffsetParentRelativeRectToViewportRelativeRect,
19109
+ isElement,
19110
+ getDimensions,
19111
+ getOffsetParent,
19112
+ getDocumentElement,
19113
+ getScale,
19114
+ async getElementRects(_ref) {
19115
+ let {
19116
+ reference,
19117
+ floating,
19118
+ strategy
19119
+ } = _ref;
19120
+ const getOffsetParentFn = this.getOffsetParent || getOffsetParent;
19121
+ const getDimensionsFn = this.getDimensions;
19122
+ return {
19123
+ reference: getRectRelativeToOffsetParent(reference, await getOffsetParentFn(floating), strategy),
19124
+ floating: {
19125
+ x: 0,
19126
+ y: 0,
19127
+ ...(await getDimensionsFn(floating))
19128
+ }
19129
+ };
19130
+ },
19131
+ getClientRects: element => Array.from(element.getClientRects()),
19132
+ isRTL: element => getComputedStyle$1(element).direction === 'rtl'
19133
+ };
19134
+
19135
+ /**
19136
+ * Computes the `x` and `y` coordinates that will place the floating element
19137
+ * next to a reference element when it is given a certain CSS positioning
19138
+ * strategy.
19139
+ */
19140
+ const computePosition = (reference, floating, options) => {
19141
+ // This caches the expensive `getClippingElementAncestors` function so that
19142
+ // multiple lifecycle resets re-use the same result. It only lives for a
19143
+ // single call. If other functions become expensive, we can add them as well.
19144
+ const cache = new Map();
19145
+ const mergedOptions = {
19146
+ platform,
19147
+ ...options
19148
+ };
19149
+ const platformWithCache = {
19150
+ ...mergedOptions.platform,
19151
+ _c: cache
19152
+ };
19153
+ return computePosition$1(reference, floating, {
19154
+ ...mergedOptions,
19155
+ platform: platformWithCache
19156
+ });
19157
+ };
19158
+
19159
+ const duetTooltipCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-tooltip,*.sc-duet-tooltip::after,*.sc-duet-tooltip::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-tooltip-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:relative;z-index:200;display:inline-flex;width:auto;margin-top:-16px !important;margin-left:-3px !important;-webkit-tap-highlight-color:transparent}/*!@.duet-tooltip*/.duet-tooltip.sc-duet-tooltip{position:absolute;z-index:950;display:none;width:282px;min-height:48px;max-height:340px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;line-height:1.25;color:rgb(0, 41, 77);visibility:hidden;background:rgb(255, 255, 255);border:1px solid rgb(225, 227, 230);border-radius:4px;box-shadow:0 2px 10px 0 rgba(0, 41, 77, 0.07);opacity:0;transition:300ms ease;transform-origin:100% 100%}/*!@.duet-tooltip.duet-theme-turva*/.duet-tooltip.duet-theme-turva.sc-duet-tooltip{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58);border-color:rgb(228, 228, 230);box-shadow:0 2px 10px 0 rgba(117, 117, 117, 0.13)}/*!@.duet-tooltip .arrow*/.duet-tooltip.sc-duet-tooltip .arrow.sc-duet-tooltip{position:absolute;width:22px;height:22px;pointer-events:none}/*!@.duet-tooltip .arrow.bottom, .duet-tooltip .arrow.bottom-start, .duet-tooltip .arrow.bottom-end*/.duet-tooltip.sc-duet-tooltip .arrow.bottom.sc-duet-tooltip,.duet-tooltip.sc-duet-tooltip .arrow.bottom-start.sc-duet-tooltip,.duet-tooltip.sc-duet-tooltip .arrow.bottom-end.sc-duet-tooltip{top:-21px}/*!@.duet-tooltip .arrow-container*/.duet-tooltip.sc-duet-tooltip .arrow-container.sc-duet-tooltip{position:relative;width:100%;height:100%;pointer-events:none}/*!@.duet-tooltip .arrow-container::after*/.duet-tooltip.sc-duet-tooltip .arrow-container.sc-duet-tooltip::after{position:absolute;z-index:200;width:0;height:0;pointer-events:none;content:\"\"}/*!@.duet-tooltip .arrow-container::before*/.duet-tooltip.sc-duet-tooltip .arrow-container.sc-duet-tooltip::before{position:absolute;z-index:100;width:0;height:0;pointer-events:none;content:\"\"}/*!@.duet-tooltip .arrow-container.top::after, .duet-tooltip .arrow-container.top-start::after, .duet-tooltip .arrow-container.top-end::after*/.duet-tooltip.sc-duet-tooltip .arrow-container.top.sc-duet-tooltip::after,.duet-tooltip.sc-duet-tooltip .arrow-container.top-start.sc-duet-tooltip::after,.duet-tooltip.sc-duet-tooltip .arrow-container.top-end.sc-duet-tooltip::after{bottom:2px;left:2px;border:10px solid transparent;border-top:10px solid rgb(255, 255, 255)}/*!@.duet-tooltip .arrow-container.top::before, .duet-tooltip .arrow-container.top-start::before, .duet-tooltip .arrow-container.top-end::before*/.duet-tooltip.sc-duet-tooltip .arrow-container.top.sc-duet-tooltip::before,.duet-tooltip.sc-duet-tooltip .arrow-container.top-start.sc-duet-tooltip::before,.duet-tooltip.sc-duet-tooltip .arrow-container.top-end.sc-duet-tooltip::before{bottom:-1px;left:1px;border:11px solid transparent;border-top:11px solid rgb(225, 227, 230)}/*!@.duet-theme-turva .duet-tooltip .arrow-container.top::before, .duet-theme-turva .duet-tooltip .arrow-container.top-start::before, .duet-theme-turva .duet-tooltip .arrow-container.top-end::before*/.duet-theme-turva.sc-duet-tooltip .duet-tooltip.sc-duet-tooltip .arrow-container.top.sc-duet-tooltip::before,.duet-theme-turva.sc-duet-tooltip .duet-tooltip.sc-duet-tooltip .arrow-container.top-start.sc-duet-tooltip::before,.duet-theme-turva.sc-duet-tooltip .duet-tooltip.sc-duet-tooltip .arrow-container.top-end.sc-duet-tooltip::before{border-top:11px solid rgb(228, 228, 230)}/*!@.duet-tooltip .arrow-container.bottom::after, .duet-tooltip .arrow-container.bottom-start::after, .duet-tooltip .arrow-container.bottom-end::after*/.duet-tooltip.sc-duet-tooltip .arrow-container.bottom.sc-duet-tooltip::after,.duet-tooltip.sc-duet-tooltip .arrow-container.bottom-start.sc-duet-tooltip::after,.duet-tooltip.sc-duet-tooltip .arrow-container.bottom-end.sc-duet-tooltip::after{bottom:1px;left:2px;border:10px solid transparent;border-bottom:10px solid rgb(255, 255, 255)}/*!@.duet-tooltip .arrow-container.bottom::before, .duet-tooltip .arrow-container.bottom-start::before, .duet-tooltip .arrow-container.bottom-end::before*/.duet-tooltip.sc-duet-tooltip .arrow-container.bottom.sc-duet-tooltip::before,.duet-tooltip.sc-duet-tooltip .arrow-container.bottom-start.sc-duet-tooltip::before,.duet-tooltip.sc-duet-tooltip .arrow-container.bottom-end.sc-duet-tooltip::before{bottom:1px;left:1px;border:11px solid transparent;border-bottom:11px solid rgb(225, 227, 230)}/*!@.duet-theme-turva .duet-tooltip .arrow-container.bottom::before, .duet-theme-turva .duet-tooltip .arrow-container.bottom-start::before, .duet-theme-turva .duet-tooltip .arrow-container.bottom-end::before*/.duet-theme-turva.sc-duet-tooltip .duet-tooltip.sc-duet-tooltip .arrow-container.bottom.sc-duet-tooltip::before,.duet-theme-turva.sc-duet-tooltip .duet-tooltip.sc-duet-tooltip .arrow-container.bottom-start.sc-duet-tooltip::before,.duet-theme-turva.sc-duet-tooltip .duet-tooltip.sc-duet-tooltip .arrow-container.bottom-end.sc-duet-tooltip::before{border-top:11px solid rgb(228, 228, 230)}/*!@.duet-tooltip.duet-tooltip-has-label*/.duet-tooltip.duet-tooltip-has-label.sc-duet-tooltip{right:auto !important;left:0;width:282px !important;transform-origin:0 0 !important}/*!@.duet-tooltip.duet-tooltip-active*/.duet-tooltip.duet-tooltip-active.sc-duet-tooltip{visibility:visible;opacity:1;transition-property:transform, opacity}/*!@.duet-tooltip-button*/.duet-tooltip-button.sc-duet-tooltip{z-index:100;display:inline-block;align-items:center;justify-content:center;min-width:48px;height:48px;padding:0 !important;margin-right:-12px;line-height:normal !important;color:rgb(0, 119, 179);white-space:nowrap;cursor:pointer;background:transparent !important;border-radius:4px}/*!@.duet-tooltip-button.duet-theme-turva*/.duet-tooltip-button.duet-theme-turva.sc-duet-tooltip{color:rgb(198, 12, 48)}/*!@.duet-tooltip-button:hover*/.duet-tooltip-button.sc-duet-tooltip:hover{color:rgb(0, 77, 128)}/*!@.duet-tooltip-button:hover.duet-theme-turva*/.duet-tooltip-button.sc-duet-tooltip:hover.duet-theme-turva{color:rgb(148, 9, 37)}/*!@.duet-tooltip-button:focus*/.duet-tooltip-button.sc-duet-tooltip:focus{background:transparent !important;outline:0}/*!@:host(.user-is-tabbing) .duet-tooltip-button:focus*/.user-is-tabbing.sc-duet-tooltip-h .duet-tooltip-button.sc-duet-tooltip:focus{background:transparent !important;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179) !important}/*!@:host(.user-is-tabbing) .duet-tooltip-button.duet-theme-turva:focus*/.user-is-tabbing.sc-duet-tooltip-h .duet-tooltip-button.duet-theme-turva.sc-duet-tooltip:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58) !important}/*!@.duet-tooltip-button svg*/.duet-tooltip-button.sc-duet-tooltip svg.sc-duet-tooltip{width:20px;height:20px;pointer-events:none}/*!@.duet-tooltip-button-has-label*/.duet-tooltip-button-has-label.sc-duet-tooltip{margin-right:0}/*!@.duet-tooltip-scrollable*/.duet-tooltip-scrollable.sc-duet-tooltip{padding:20px !important;width:100%;max-height:250px;padding-right:25px !important;overflow-y:auto;-webkit-hyphens:auto;hyphens:auto;border-radius:4px;-webkit-overflow-scrolling:touch}/*!@.duet-tooltip-scrollable:focus*/.duet-tooltip-scrollable.sc-duet-tooltip:focus{outline:none}/*!@:host(.user-is-tabbing) .duet-tooltip-scrollable:focus*/.user-is-tabbing.sc-duet-tooltip-h .duet-tooltip-scrollable.sc-duet-tooltip:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179)}/*!@:host(.user-is-tabbing) .duet-theme-turva .duet-tooltip-scrollable:focus*/.user-is-tabbing.sc-duet-tooltip-h .duet-theme-turva.sc-duet-tooltip .duet-tooltip-scrollable.sc-duet-tooltip:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58)}/*!@.duet-tooltip-scrollable::-webkit-scrollbar*/.duet-tooltip-scrollable.sc-duet-tooltip::-webkit-scrollbar{width:4px}/*!@.duet-tooltip-scrollable::-webkit-scrollbar-track*/.duet-tooltip-scrollable.sc-duet-tooltip::-webkit-scrollbar-track{border-radius:4px}/*!@.duet-tooltip-scrollable::-webkit-scrollbar-thumb*/.duet-tooltip-scrollable.sc-duet-tooltip::-webkit-scrollbar-thumb{background:rgb(225, 227, 230);border-radius:4px}/*!@.duet-theme-turva .duet-tooltip-scrollable::-webkit-scrollbar-thumb*/.duet-theme-turva.sc-duet-tooltip .duet-tooltip-scrollable.sc-duet-tooltip::-webkit-scrollbar-thumb{background:rgb(228, 228, 230)}/*!@.duet-tooltip-label*/.duet-tooltip-label.sc-duet-tooltip{position:relative;z-index:100;display:inline-block;max-width:calc(100% - 30px);margin-left:12px !important;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;line-height:1.25;text-align:left;white-space:normal;vertical-align:top}/*!@.duet-theme-turva .duet-tooltip-label*/.duet-theme-turva.sc-duet-tooltip .duet-tooltip-label.sc-duet-tooltip{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}/*!@.duet-tooltip-close*/.duet-tooltip-close.sc-duet-tooltip{position:absolute;top:8px;right:8px;display:flex;align-items:center;justify-content:center;width:17px;height:17px;min-height:0 !important;padding:0 !important;margin:0 !important;line-height:normal;color:rgb(0, 41, 77);cursor:pointer;background:rgb(245, 248, 250);border-radius:50%;-webkit-appearance:none;appearance:none}/*!@.duet-tooltip-close:focus*/.duet-tooltip-close.sc-duet-tooltip:focus{outline:none;box-shadow:0 0 0 2px rgb(0, 119, 179)}/*!@.duet-theme-turva .duet-tooltip-close:focus*/.duet-theme-turva.sc-duet-tooltip .duet-tooltip-close.sc-duet-tooltip:focus{color:rgb(23, 28, 58);box-shadow:0 0 0 2px rgb(23, 28, 58)}";
17982
19160
 
17983
19161
  class DuetTooltip {
17984
19162
  constructor(hostRef) {
@@ -17986,8 +19164,11 @@ class DuetTooltip {
17986
19164
  /**
17987
19165
  * Own Properties.
17988
19166
  */
19167
+ this.mql = [
19168
+ window.matchMedia(media_query_medium.replace(/'/g, "")),
19169
+ window.matchMedia(media_query_large.replace(/'/g, "")),
19170
+ ];
17989
19171
  this.tooltipId = createID("DuetTooltip");
17990
- this.lastScrollTop = 0;
17991
19172
  /**
17992
19173
  * Local methods
17993
19174
  */
@@ -18031,42 +19212,37 @@ class DuetTooltip {
18031
19212
  this.handleCloseClick = () => {
18032
19213
  this.closeTooltip(true);
18033
19214
  };
18034
- this.isElementInViewportVertically = () => {
18035
- if (!this.tooltipEl) {
18036
- return false;
18037
- }
18038
- var rect = this.tooltipEl.getBoundingClientRect();
18039
- return (
18040
- // This takes the possible Nav component into account
18041
- rect.top >= 100 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight));
18042
- };
18043
- this.handleVerticalVisibility = () => {
18044
- const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
18045
- if (!this.isElementInViewportVertically()) {
18046
- this.openDown = scrollTop > this.lastScrollTop;
19215
+ this.updatePlacement = async () => {
19216
+ var _a, _b;
19217
+ let preferRight = true;
19218
+ if (this.breakpoint === "large" && !this.mql[1].matches) {
19219
+ preferRight = false;
18047
19220
  }
18048
- this.lastScrollTop = Math.max(0, scrollTop);
18049
- };
18050
- this.handleHorizontalVisibility = () => {
18051
- var rect = this.tooltipEl.getBoundingClientRect();
18052
- const isLeftSideVisible = rect.left >= 0;
18053
- const isRightSideVisible = rect.right < (window.innerWidth || document.documentElement.clientWidth);
18054
- if (!isLeftSideVisible || (this.direction !== "right" && this.openRight)) {
18055
- this.openRight = true;
19221
+ else if (this.breakpoint === "medium" && !this.mql[0].matches) {
19222
+ preferRight = false;
18056
19223
  }
18057
- else {
18058
- this.openRight = this.direction === "right";
19224
+ let placement = preferRight ? "top-start" : "top-end";
19225
+ if (this.direction === "left") {
19226
+ placement = "top-end";
18059
19227
  }
18060
- if (!isRightSideVisible || (this.direction !== "left" && this.openLeft)) {
18061
- this.openLeft = true;
19228
+ else if (this.direction === "right") {
19229
+ placement = "top-start";
18062
19230
  }
18063
- else {
18064
- this.openLeft = this.direction === "left";
18065
- }
18066
- };
18067
- this.openDown = false;
18068
- this.openLeft = false;
18069
- this.openRight = false;
19231
+ const position = await computePosition(this.buttonEl, this.tooltipEl, {
19232
+ placement,
19233
+ middleware: [flip(), shift({ padding: 5 }), arrow({ element: this.arrowEl })],
19234
+ });
19235
+ this.tooltipY = position.y;
19236
+ this.tooltipX = position.x;
19237
+ this.placement = position.placement;
19238
+ this.arrowY = (_a = position.middlewareData.arrow) === null || _a === void 0 ? void 0 : _a.y;
19239
+ this.arrowX = (_b = position.middlewareData.arrow) === null || _b === void 0 ? void 0 : _b.x;
19240
+ };
19241
+ this.placement = "bottom";
19242
+ this.tooltipY = undefined;
19243
+ this.tooltipX = undefined;
19244
+ this.arrowX = undefined;
19245
+ this.arrowY = undefined;
18070
19246
  this.theme = "";
18071
19247
  this.language = getLanguage();
18072
19248
  this.accessibleLabelDefault = {
@@ -18104,7 +19280,7 @@ class DuetTooltip {
18104
19280
  inheritGlobalTheme(this);
18105
19281
  }
18106
19282
  componentDidLoad() {
18107
- this.handleHorizontalVisibility();
19283
+ this.updatePlacement();
18108
19284
  }
18109
19285
  componentDidUpdate() {
18110
19286
  switch (this.focusTarget) {
@@ -18130,15 +19306,14 @@ class DuetTooltip {
18130
19306
  clearTimeout(this.scrollTimer);
18131
19307
  this.scrollTimer = setTimeout(() => {
18132
19308
  if (this.active) {
18133
- this.handleHorizontalVisibility();
18134
- this.handleVerticalVisibility();
19309
+ this.updatePlacement();
18135
19310
  }
18136
19311
  }, 100);
18137
19312
  }
18138
19313
  handleWindowResize() {
18139
19314
  clearTimeout(this.resizeTimer);
18140
19315
  this.resizeTimer = setTimeout(() => {
18141
- this.handleHorizontalVisibility();
19316
+ this.updatePlacement();
18142
19317
  }, 100);
18143
19318
  }
18144
19319
  handleDocumentClick(e) {
@@ -18153,11 +19328,10 @@ class DuetTooltip {
18153
19328
  }
18154
19329
  async handleActiveChange(newActiveValue) {
18155
19330
  if (newActiveValue) {
18156
- this.handleHorizontalVisibility();
18157
- this.openDown = !this.isElementInViewportVertically();
19331
+ this.updatePlacement();
18158
19332
  }
18159
19333
  else {
18160
- setTimeout(() => (this.openDown = false), 300);
19334
+ setTimeout(() => this.updatePlacement(), 300);
18161
19335
  }
18162
19336
  }
18163
19337
  /**
@@ -18171,23 +19345,27 @@ class DuetTooltip {
18171
19345
  // top of other tooltips and the header.
18172
19346
  zIndex: this.active ? "201" : "",
18173
19347
  };
19348
+ const positionStyles = {
19349
+ top: `${this.tooltipY}px`,
19350
+ left: `${this.tooltipX}px`,
19351
+ display: "block",
19352
+ };
19353
+ const arrowStyles = {
19354
+ top: this.arrowY ? `${this.arrowY}px` : undefined,
19355
+ left: this.arrowX ? `${this.arrowX}px` : undefined,
19356
+ };
18174
19357
  return (hAsync(Host, { style: tooltipStyles }, hAsync("button", { ref: element => (this.buttonEl = element), "aria-controls": this.tooltipId, "aria-expanded": this.active ? "true" : "false", onClick: this.toggleOpen, type: "button", class: {
18175
19358
  "duet-tooltip-button": true,
18176
19359
  "duet-tooltip-button-has-label": !!this.label,
18177
19360
  "duet-theme-turva": this.theme === "turva",
18178
19361
  } }, hAsync("svg", { "aria-hidden": "true", role: "img", fill: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, hAsync("path", { d: "m13.5 17.25c-1.241 0-2.25-1.009-2.25-2.25v-3.75h-.75c-.414 0-.75-.336-.75-.75s.336-.75.75-.75h.75c.827 0 1.5.673 1.5 1.5v3.75c0 .414.336.75.75.75h.75c.414 0 .75.336.75.75s-.336.75-.75.75z" }), hAsync("circle", { cx: "11.625", cy: "7.125", r: "1.125" }), hAsync("path", { d: "m12 24c-6.617 0-12-5.383-12-12s5.383-12 12-12 12 5.383 12 12-5.383 12-12 12zm0-22.5c-5.79 0-10.5 4.71-10.5 10.5s4.71 10.5 10.5 10.5 10.5-4.71 10.5-10.5-4.71-10.5-10.5-10.5z" })), this.label ? (hAsync("span", { class: "duet-tooltip-label" }, this.label)) : (hAsync("duet-visually-hidden", null, this.accessibleInputLabel
18179
19362
  ? `${this.accessibleInputLabel}, ${this.accessibleLabel}`
18180
- : this.accessibleLabel))), hAsync("div", { ref: element => (this.tooltipEl = element), class: {
19363
+ : this.accessibleLabel))), hAsync("div", { ref: element => (this.tooltipEl = element), style: positionStyles, class: {
18181
19364
  "duet-tooltip": true,
18182
- "duet-mq-large": this.breakpoint === "large",
18183
- "duet-mq-medium": this.breakpoint === "medium",
18184
19365
  "duet-theme-turva": this.theme === "turva",
18185
- "duet-tooltip-down": this.openDown,
18186
19366
  "duet-tooltip-has-label": !!this.label,
18187
- "duet-tooltip-left": this.openLeft,
18188
- "duet-tooltip-right": this.openRight,
18189
19367
  "duet-tooltip-active": this.active === true,
18190
- }, onClick: e => e.stopPropagation(), onKeyDown: this.handleKeyDown, onFocusout: this.handleFocusOut }, hAsync("div", { ref: element => (this.scrollableEl = element), class: "duet-tooltip-scrollable", tabindex: "0", id: this.tooltipId }, hAsync("slot", null)), hAsync("button", { type: "button", class: "duet-tooltip-close", onClick: this.handleCloseClick }, hAsync("duet-icon", { name: "navigation-close-small", margin: "none", color: "currentColor", size: "xxx-small" }), hAsync("duet-visually-hidden", null, this.accessibleCloseLabel)))));
19368
+ }, onClick: e => e.stopPropagation(), onKeyDown: this.handleKeyDown, onFocusout: this.handleFocusOut }, hAsync("div", { ref: element => (this.scrollableEl = element), class: "duet-tooltip-scrollable", tabindex: "0", id: this.tooltipId }, hAsync("slot", null)), hAsync("div", { ref: element => (this.arrowEl = element), class: { arrow: true, [this.placement]: true }, style: arrowStyles }, hAsync("div", { class: { "arrow-container": true, [this.placement]: true } })), hAsync("button", { type: "button", class: "duet-tooltip-close", onClick: this.handleCloseClick }, hAsync("duet-icon", { name: "navigation-close-small", margin: "none", color: "currentColor", size: "xxx-small" }), hAsync("duet-visually-hidden", null, this.accessibleCloseLabel)))));
18191
19369
  }
18192
19370
  get element() { return getElement(this); }
18193
19371
  static get watchers() { return {
@@ -18212,9 +19390,11 @@ class DuetTooltip {
18212
19390
  "positionVertical": [513, "position-vertical"],
18213
19391
  "positionHorizontal": [513, "position-horizontal"],
18214
19392
  "active": [1540],
18215
- "openDown": [32],
18216
- "openLeft": [32],
18217
- "openRight": [32]
19393
+ "placement": [32],
19394
+ "tooltipY": [32],
19395
+ "tooltipX": [32],
19396
+ "arrowX": [32],
19397
+ "arrowY": [32]
18218
19398
  },
18219
19399
  "$listeners$": [[9, "scroll", "onScroll"], [9, "resize", "handleWindowResize"], [4, "click", "handleDocumentClick"]],
18220
19400
  "$lazyBundleId$": "-",
@@ -18496,17 +19676,25 @@ const formatBytes = (bytes, decimals = 2) => {
18496
19676
  return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + " " + sizes[i];
18497
19677
  };
18498
19678
 
19679
+ //tiedosto latautuu
19680
+ const fileUploadingInfo = {
19681
+ fi: "Tiedosto latautuu",
19682
+ sv: "Filen laddas upp",
19683
+ en: "File is uploading",
19684
+ };
18499
19685
  const UploadItem = ({ data, showLinks, type, actions, errorCodes, theme, label, categoryLabel, showCategory, }) => {
18500
19686
  const { uid, item, size, uploaded, url, meta, progress, error } = data;
18501
19687
  const { name } = item;
18502
19688
  const getFileNameLine = () => {
18503
19689
  switch (type) {
18504
19690
  case "inprogress":
18505
- return (hAsync("span", { class: "duet-upload-item-name" },
19691
+ return (hAsync("span", { class: "duet-upload-item-name", role: "status" },
18506
19692
  hAsync("duet-paragraph", { class: "duet-upload-item-name", color: "gray-darker", margin: "none", weight: "semi-bold" },
18507
19693
  hAsync("duet-icon", { margin: "none", size: "x-small", name: "messaging-attachment" }),
18508
19694
  hAsync("duet-spacer", { size: "xx-small", direction: "horizontal" }),
18509
19695
  name),
19696
+ hAsync("visually-hidden", null,
19697
+ hAsync("duet-paragraph", null, getLocaleString(fileUploadingInfo))),
18510
19698
  hAsync("duet-progress", { progress: Math.ceil(progress), "aria-hidden": true })));
18511
19699
  case "pending":
18512
19700
  return (hAsync("span", { class: "duet-upload-item-name" },
@@ -18550,7 +19738,7 @@ const UploadItem = ({ data, showLinks, type, actions, errorCodes, theme, label,
18550
19738
  !!label && (hAsync("duet-heading", { class: "heading", color: "color-secondary", level: "h6", weight: "semibold" }, getLocaleString(label))),
18551
19739
  getFileNameLine()),
18552
19740
  hAsync("div", { class: "item-actions" }, actions.map(actionItem => {
18553
- return (hAsync("duet-action-button", { actionMeta: Object.assign({}, meta || {}), actionId: uid || null, actionName: actionItem.name, theme: theme, iconName: actionItem.icon, iconColor: actionItem.color, iconSize: actionItem.size, background: actionItem.background, "accessible-label": `${actionDescription} ${getLocaleString(actionItem.label)} ` }));
19741
+ return (hAsync("duet-action-button", { actionMeta: Object.assign({}, meta || {}), actionId: uid || null, actionName: actionItem.name, theme: theme, iconName: actionItem.icon, iconColor: actionItem.color, iconSize: actionItem.size, background: actionItem.background, "accessible-label": `${actionDescription} ${getLocaleString(actionItem.label)} `, accessibleTitle: false }));
18554
19742
  }))));
18555
19743
  };
18556
19744
 
@@ -19182,7 +20370,7 @@ class DuetUpload {
19182
20370
  inProgress: "Lähetetään {filesUploaded} lähetettävästä {filesTotal} tiedostosta",
19183
20371
  inProgressWithErrors: "Lähetetään {filesInProgress} tiedostoa, lähetetty {filesUploaded} lähetettävästä {filesTotal} tiedostosta, {filesWithErrors} tiedostossa on virheitä",
19184
20372
  done: "Kaikki {filesTotal} tiedostoa lähetetty onnistuneesti",
19185
- doneWithErrors: "Lähetys valmis, {filesUploaded} tiedostoa on lähetetty onnistuneesti, {filesWithErrors} tiedostossa oli virheitä",
20373
+ doneWithErrors: "Lataus valmis, {filesUploaded} tiedostoa ladattu onnistuneesti, {filesWithErrors} tiedostossa oli virheitä",
19186
20374
  files: "tiedostot",
19187
20375
  file: "tiedosto",
19188
20376
  },