PageSourceSearch

https://www.santheafrica.org/wp-content/themes/SantheTheme%20v1/dist/main.bundle.js?ver=1.4

js santheafrica.org collected 2026-10-02 18:47:03 UTC 824,920 bytes, 15,297 lines download raw bytes

vendor: 87 bytes, lines 1-4
1/******/ (() => { // webpackBootstrap
2/******/ 	var __webpack_modules__ = ({
3
4/***/ "./
4assets/js/abstract/helpers.js":
5/*!***************************************!*\
6  !*** ./assets/js/abstract/helpers.js ***!
7  \***************************************/
8/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9
10"use strict";
11__webpack_require__.r(__webpack_exports__);
12/* harmony export */ __webpack_require__.d(__webpack_exports__, {
13/* harmony export */   "closest": () => (/* binding */ closest),
14/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__),
15/* harmony export */   "inViewport": () => (/* binding */ inViewport),
16/* harmony export */   "onChange": () => (/* binding */ onChange),
17/* harmony export */   "onClick": () => (/* binding */ onClick),
18/* harmony export */   "onClickDynamic": () => (/* binding */ onClickDynamic),
19/* harmony export */   "pageReady": () => (/* binding */ pageReady)
20/* harmony export */ });
21function pageReady(fn) {
22  if (document.readyState != 'loading') {
23    fn();
24  } else if (document.addEventListener) {
25    document.addEventListener('DOMContentLoaded', fn);
26  } else {
27    document.attachEvent('onreadystatechange', function () {
28      if (document.readyState != 'loading') fn();
29    });
30  }
31}
32function closest(el, selector) {
33  // If the current element matches the selector, return it
34  if (el.matches(selector)) {
35    return el;
36  } // If we've reached the top of the DOM tree, return null
37
38
39  if (el.parentElement === null) {
40    return null;
41  } // Recursively search the parent elements until we find a match
42
43
44  return closest(el.parentElement, selector);
45}
46function onClick(element, handler) {
47  if (typeof element != 'undefined' && element != null) {
48    if (element.addEventListener) {
49      element.addEventListener('click', function (e) {
50        handler(e);
51      }, false);
52    } else {
53      element.attachEvent('onclick', function (e) {
54        handler(e);
55      });
56    }
57  }
58}
59function onClickDynamic(element, handler) {
60  document.addEventListener('click', function (event) {
61    if (event.target.matches(element)) {
62      handler(event);
63    }
64  });
65}
66function onChange(element, handler) {
67  if (element.addEventListener) {
68    element.addEventListener('change', function (e) {
69      return handler;
70    }, false);
71  } else {
72    element.attachEvent('onchange', function (e) {
73      return handler;
74    });
75  }
76}
77function inViewport(elem, handler) {
78  var allElements = document.querySelectorAll(elem);
79  var windowHeight = window.innerHeight;
80
81  function viewportChecker(event, allElements, windowHeight, handler) {
82    for (var i = 0; i < allElements.length; i++) {
83      //  loop through the sections
84      var viewportOffset = allElements[i].getBoundingClientRect(); //  returns the size of an element and its position relative to the viewport
85
86      var top = viewportOffset.top; //  get the offset top
87
88      if (top < windowHeight) {
89        //  if the top offset is less than the window height
90        handler(true);
91      } else {
92        handler(false);
93      }
94    }
95  }
96
97  viewportChecker(null, allElements, windowHeight, handler);
98  window.addEventListener('scroll', function (event) {
99    viewportChecker(event, allElements, windowHeight, handler);
100  });
101}
102/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
103  pageReady: pageReady,
104  onClick: onClick,
105  onChange: onChange,
106  inViewport: inViewport
107});
108
109/***/ }),
110
111/***/ "./assets/js/archives/replace-page-content.js":
112/*!****************************************************!*\
113  !*** ./assets/js/archives/replace-page-content.js ***!
114  \****************************************************/
115/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
116
117"use strict";
118__webpack_require__.r(__webpack_exports__);
119/* harmony export */ __webpack_require__.d(__webpack_exports__, {
120/* harmony export */   "ReplacePageContent": () => (/* binding */ ReplacePageContent)
121/* harmony export */ });
122/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js");
123function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
124
125function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
126
127function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
128
129
130var ReplacePageContent = /*#__PURE__*/function () {
131  function ReplacePageContent() {
132    var _this = this;
133
134    _classCallCheck(this, ReplacePageContent);
135
136    this.paged = 1;
137    this.controller = new AbortController();
138    this.signal = this.controller.signal;
139    this.hasOngoingFetch = false;
140
141    if (document.querySelector('.default-content-area .card-wrapper .card-roll')) {
142      if (document.querySelector('.default-content-area .card-wrapper .card-roll').innerHTML.trim() === "") {
143        document.querySelector('.default-content-area .card-wrapper .card-roll').innerHTML = this.getNoPostsMessage();
144      }
145    }
146
147    document.querySelectorAll('#filter-form #sort').forEach(function (element) {
148      element.onchange = function () {
149        this.sendPageRequest(true);
150      }.bind(_this);
151    });
152    this.setupPaginationClick();
153  }
154
155  _createClass(ReplacePageContent, [{
156    key: "getNoPostsMessage",
157    value: function getNoPostsMessage() {
158      return "<h2>No Posts Found</h2>";
159    }
160  }, {
161    key: "setupPaginationClick",
162    value: function setupPaginationClick() {
163      (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(document.querySelector('.menu-style-1 input[type=checkbox]'), function (e) {
164        this.sendPageRequest(true);
165      }.bind(this));
166      (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(document.querySelector('.pagination-load-more a'), function (e) {
167        e.preventDefault();
168        this.sendPageRequest(false);
169      }.bind(this));
170      (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(document.querySelector('#filter-form button'), function (e) {
171        e.preventDefault();
172        this.sendPageRequest(true);
173      }.bind(this));
174    }
175  }, {
176    key: "sendPageRequest",
177    value: function sendPageRequest(reset) {
178      var isReplace = true;
179
180      if (this.hasOngoingFetch) {
181        //this.controller.abort();
182        this.hasOngoingFetch = false; //this.sendPageRequest(reset);
183      } else {
184        this.hasOngoingFetch = true;
185      }
186
187      if (reset) {
188        this.paged = 1;
189      } else {
190        isReplace = false;
191        this.paged = this.paged + 1;
192      }
193
194      var url = window.location.href.split('?')[0] + "?paged=" + this.paged;
195      var search = document.querySelector('#search');
196      var surname = document.querySelector('#surname');
197      var author = document.querySelector('#author');
198      var sort = document.querySelector('#sort');
199      var rank = document.querySelector('#rank');
200      var site = document.querySelector('#site');
201      var field_of_study = document.querySelector('#field_of_study');
202      var past_projects = document.querySelector('#past_projects');
203      var funding_source = document.querySelector('#funding_source');
204
205      if (search && search.value != "") {
206        url += "&search-element=" + search.value;
207      }
208
209      if (surname && surname.value != "") {
210        url += "&surname-element=" + surname.value;
211      }
212
213      if (author && author.value != "") {
214        url += "&author-element=" + author.value;
215      }
216
217      if (sort && sort.value != "") {
218        url += "&sort-element=" + sort.value;
219      }
220
221      if (rank && rank.value != "") {
222        url += "&rank-element=" + rank.value;
223      }
224
225      if (site && site.value != "") {
226        url += "&site-element=" + site.value;
227      }
228
229      if (field_of_study && field_of_study.value != "") {
230        url += "&field_of_study-element=" + field_of_study.value;
231      }
232
233      if (past_projects && past_projects.value != "") {
234        url += "&past_projects-element=" + past_projects.checked;
235      }
236
237      if (funding_source && funding_source.value != "") {
238        url += "&funding_source-element=" + funding_source.value;
239      }
240
241      history.pushState({}, document.querySelector('title').innerHTML, url);
242      document.querySelector('.default-content-area .card-wrapper').classList.add("loading");
243      var initial_count = 0;
244
245      if (document.querySelector('.default-content-area .card-wrapper .card-roll').children.length) {
246        initial_count = document.querySelector('.default-content-area .card-wrapper .card-roll').children.length;
247      }
248
249      fetch(url, {
250        method: 'GET',
251        signal: this.signal
252      }).then(function (response) {
253        return response.text();
254      }).then(function (html) {
255        this.hasOngoingFetch = false;
256        var parser = new DOMParser();
257        var doc = parser.parseFromString(html, 'text/html');
258        var element = doc.querySelector('.default-content-area .card-wrapper .card-roll');
259        var pagination = doc.querySelector('.default-content-area .card-wrapper .pagination-numbers');
260
261        if (typeof element != 'undefined' && element != null) {
262          if (reset) {
263            document.querySelector('.default-content-area .card-wrapper .card-roll').innerHTML = element.innerHTML;
264          } else {
265            document.querySelector('.default-content-area .card-wrapper .card-roll').insertAdjacentHTML('beforeend', element.innerHTML);
266          }
267
268          if (element.children.length < initial_count) {
269            if (document.querySelector('.pagination-load-more a')) {
270              document.querySelector('.pagination-load-more a').classList.add("hidden");
271            }
272          }
273        } else {
274          if (document.querySelector('.pagination-load-more a')) {
275            document.querySelector('.pagination-load-more a').classList.add("hidden");
276          }
277        }
278
279        if (reset && (element.innerHTML.trim() === "" || typeof element === 'undefined' || element === null)) {
280          document.querySelector('.default-content-area .card-wrapper .card-roll').innerHTML = this.getNoPostsMessage();
281        }
282
283        if (typeof pagination != 'undefined' && pagination != null && document.querySelector('.default-content-area .card-wrapper .pagination-numbers')) {
284          document.querySelector('.default-content-area .card-wrapper .pagination-numbers').innerHTML = pagination.innerHTML;
285        } else {
286          document.querySelector('.default-content-area .card-wrapper .pagination-numbers').innerHTML = '';
287        }
288
289        document.querySelector('.default-content-area .card-wrapper').classList.remove("loading");
290      }.bind(this).bind(initial_count))["catch"](function (err) {
291        // There was an error
292        document.querySelector('.default-content-area .card-wrapper').classList.remove("loading");
293        console.warn('Something went wrong.', err);
294      });
295    }
296  }]);
297
298  return ReplacePageContent;
299}();
300
301/***/ }),
302
303/***/ "./assets/js/components/custom-select.js":
304/*!***********************************************!*\
305  !*** ./assets/js/components/custom-select.js ***!
306  \***********************************************/
307/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
308
309"use strict";
310__webpack_require__.r(__webpack_exports__);
311/* harmony export */ __webpack_require__.d(__webpack_exports__, {
312/* harmony export */   "CustomSelect": () => (/* binding */ CustomSelect)
313/* harmony export */ });
314/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js");
315/* harmony import */ var choices_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! choices.js */ "./node_modules/choices.js/public/assets/scripts/choices.js");
316/* harmony import */ var choices_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(choices_js__WEBPACK_IMPORTED_MODULE_1__);
317function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
318
319function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
320
321function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
322
323//https://github.com/Choices-js/Choices/
324
325 //import Choices from '../../../node_modules/choices.js/public/assets/scripts/choices.min.js'
326//import Choices from '../../../node_modules/choices.js/public/types/src/index.d.ts'
327
328var CustomSelect = /*#__PURE__*/_createClass(function CustomSelect() {
329  _classCallCheck(this, CustomSelect);
330
331  document.jsChoiceList = [];
332  var select_list = document.querySelectorAll('.js-choice');
333  select_list.forEach(function (select) {
334    var options = {};
335
336    if (select.childElementCount < 8) {
337      options.searchEnabled = false;
338    } else {
339      options.searchEnabled = true;
340    }
341
342    document.jsChoiceList.push(new (choices_js__WEBPACK_IMPORTED_MODULE_1___default())(select, options));
343  });
344});
345
346/***/ }),
347
348/***/ "./assets/js/components/faq.js":
349/*!*************************************!*\
350  !*** ./assets/js/components/faq.js ***!
351  \*************************************/
352/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
353
354"use strict";
355__webpack_require__.r(__webpack_exports__);
356/* harmony export */ __webpack_require__.d(__webpack_exports__, {
357/* harmony export */   "FAQ": () => (/* binding */ FAQ)
358/* harmony export */ });
359/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js");
360function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
361
362function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
363
364function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
365
366function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
367
368
369var FAQ = /*#__PURE__*/_createClass(function FAQ() {
370  var _this = this;
371
372  _classCallCheck(this, FAQ);
373
374  _defineProperty(this, "slideUp", function (target) {
375    var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
376    target.style.transitionProperty = 'height, margin, padding';
377    target.style.transitionDuration = duration + 'ms';
378    target.style.boxSizing = 'border-box';
379    target.style.height = target.offsetHeight + 'px';
380    target.offsetHeight;
381    target.style.overflow = 'hidden';
382    target.style.height = 0;
383    target.style.paddingTop = 0;
384    target.style.paddingBottom = 0;
385    target.style.marginTop = 0;
386    target.style.marginBottom = 0;
387    window.setTimeout(function () {
388      target.style.display = 'none';
389      target.style.removeProperty('height');
390      target.style.removeProperty('padding-top');
391      target.style.removeProperty('padding-bottom');
392      target.style.removeProperty('margin-top');
393      target.style.removeProperty('margin-bottom');
394      target.style.removeProperty('overflow');
395      target.style.removeProperty('transition-duration');
396      target.style.removeProperty('transition-property'); //alert("!");
397    }, duration);
398  });
399
400  _defineProperty(this, "slideDown", function (target) {
401    var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
402    target.style.removeProperty('display');
403    var display = window.getComputedStyle(target).display;
404    if (display === 'none') display = 'block';
405    target.style.display = display;
406    var height = target.offsetHeight;
407    target.style.overflow = 'hidden';
408    target.style.height = 0;
409    target.style.paddingTop = 0;
410    target.style.paddingBottom = 0;
411    target.style.marginTop = 0;
412    target.style.marginBottom = 0;
413    target.offsetHeight;
414    target.style.boxSizing = 'border-box';
415    target.style.transitionProperty = "height, margin, padding";
416    target.style.transitionDuration = duration + 'ms';
417    target.style.height = height + 'px';
418    target.style.removeProperty('padding-top');
419    target.style.removeProperty('padding-bottom');
420    target.style.removeProperty('margin-top');
421    target.style.removeProperty('margin-bottom');
422    window.setTimeout(function () {
423      target.style.removeProperty('height');
424      target.style.removeProperty('overflow');
425      target.style.removeProperty('transition-duration');
426      target.style.removeProperty('transition-property');
427    }, duration);
428  });
429
430  _defineProperty(this, "slideToggle", function (target) {
431    var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
432
433    if (window.getComputedStyle(target).display === 'none') {
434      target.parentNode.classList.add('open');
435      return _this.slideDown(target, duration);
436    } else {
437      target.parentNode.classList.remove('open');
438      return _this.slideUp(target, duration);
439    }
440  });
441
442  if (document.querySelector('#FAQ .align-right .faq_card .title')) {
443    document.querySelectorAll('#FAQ .align-right .faq_card .title').forEach(function (el) {
444      (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(el, function () {
445        this.slideToggle(el.parentElement.querySelector('.body'));
446      }.bind(this));
447    }.bind(this));
448  }
449});
450
451/***/ }),
452
453/***/ "./assets/js/components/follow-menu-style-1.js":
454/*!*****************************************************!*\
455  !*** ./assets/js/components/follow-menu-style-1.js ***!
456  \*****************************************************/
457/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
458
459"use strict";
460__webpack_require__.r(__webpack_exports__);
461/* harmony export */ __webpack_require__.d(__webpack_exports__, {
462/* harmony export */   "FollowMenu": () => (/* binding */ FollowMenu)
463/* harmony export */ });
464/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js");
465function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
466
467function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
468
469function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
470
471
472var FollowMenu = /*#__PURE__*/_createClass(function FollowMenu() {
473  _classCallCheck(this, FollowMenu);
474
475  if (document.querySelector('.follow-menu-style-1')) {
476    window.addEventListener('scroll', function (event) {
477      var el = document.querySelector('.follow-menu-style-1');
478      var el2 = document.querySelector('.menu-style-1');
479      var windowHeight = window.innerHeight;
480      var viewportOffset = el2.getBoundingClientRect(); //  returns the size of an element and its position relative to the viewport
481
482      var top = viewportOffset.top; //  get the offset top
483
484      console.log(top);
485      console.log(windowHeight);
486
487      if (top < 0) {
488        //  if the top offset is less than the window height
489        el.classList.add('visible');
490      } else {
491        el.classList.remove('visible');
492      }
493    });
494  }
495});
496
497/***/ }),
498
499/***/ "./assets/js/components/form-reset-button.js":
500/*!***************************************************!*\
501  !*** ./assets/js/components/form-reset-button.js ***!
502  \***************************************************/
503/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
504
505"use strict";
506__webpack_require__.r(__webpack_exports__);
507/* harmony export */ __webpack_require__.d(__webpack_exports__, {
508/* harmony export */   "FormResetButton": () => (/* binding */ FormResetButton)
509/* harmony export */ });
510/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js");
511function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
512
513function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
514
515function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
516
517function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
518
519
520var FormResetButton = /*#__PURE__*/_createClass(function FormResetButton() {
521  var _this = this;
522
523  _classCallCheck(this, FormResetButton);
524
525  _defineProperty(this, "slideUp", function (target) {
526    var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
527    target.style.transitionProperty = 'height, margin, padding';
528    target.style.transitionDuration = duration + 'ms';
529    target.style.boxSizing = 'border-box';
530    target.style.height = target.offsetHeight + 'px';
531    target.offsetHeight;
532    target.style.overflow = 'hidden';
533    target.style.height = 0;
534    target.style.paddingTop = 0;
535    target.style.paddingBottom = 0;
536    target.style.marginTop = 0;
537    target.style.marginBottom = 0;
538    window.setTimeout(function () {
539      target.style.display = 'none';
540      target.style.removeProperty('height');
541      target.style.removeProperty('padding-top');
542      target.style.removeProperty('padding-bottom');
543      target.style.removeProperty('margin-top');
544      target.style.removeProperty('margin-bottom');
545      target.style.removeProperty('overflow');
546      target.style.removeProperty('transition-duration');
547      target.style.removeProperty('transition-property'); //alert("!");
548    }, duration);
549  });
550
551  _defineProperty(this, "slideDown", function (target) {
552    var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
553    target.style.removeProperty('display');
554    var display = window.getComputedStyle(target).display;
555    if (display === 'none') display = 'block';
556    target.style.display = display;
557    var height = target.offsetHeight;
558    target.style.overflow = 'hidden';
559    target.style.height = 0;
560    target.style.paddingTop = 0;
561    target.style.paddingBottom = 0;
562    target.style.marginTop = 0;
563    target.style.marginBottom = 0;
564    target.offsetHeight;
565    target.style.boxSizing = 'border-box';
566    target.style.transitionProperty = "height, margin, padding";
567    target.style.transitionDuration = duration + 'ms';
568    target.style.height = height + 'px';
569    target.style.removeProperty('padding-top');
570    target.style.removeProperty('padding-bottom');
571    target.style.removeProperty('margin-top');
572    target.style.removeProperty('margin-bottom');
573    window.setTimeout(function () {
574      target.style.removeProperty('height');
575      target.style.removeProperty('overflow');
576      target.style.removeProperty('transition-duration');
577      target.style.removeProperty('transition-property');
578    }, duration);
579  });
580
581  _defineProperty(this, "slideToggle", function (target) {
582    var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
583
584    if (window.getComputedStyle(target).display === 'none') {
585      target.parentNode.classList.add('open');
586      return _this.slideDown(target, duration);
587    } else {
588      target.parentNode.classList.remove('open');
589      return _this.slideUp(target, duration);
590    }
591  });
592
593  if (document.querySelector('.form-reset-button')) {
594    document.querySelectorAll('.form-reset-button').forEach(function (el) {
595      (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(el, function () {
596        var form = el.closest('form');
597        form.reset();
598        document.jsChoiceList.forEach(function (select) {
599          select.destroy();
600          select.init();
601        });
602        el.classList.remove('visible');
603      }.bind(this));
604    }.bind(this));
605    document.querySelector('#filter-form').addEventListener("input", function () {
606      document.querySelectorAll('.form-reset-button').forEach(function (el) {
607        el.classList.add('visible');
608      });
609    });
610    document.querySelectorAll('.js-choice').forEach(function (select) {
611      select.addEventListener('change', function (event) {
612        document.querySelectorAll('.form-reset-button').forEach(function (el) {
613          el.classList.add('visible');
614        });
615      }, false);
616    });
617  }
618});
619
620/***/ }),
621
622/***/ "./assets/js/components/funding.js":
623/*!*****************************************!*\
624  !*** ./assets/js/components/funding.js ***!
625  \*****************************************/
626/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
627
628"use strict";
629__webpack_require__.r(__webpack_exports__);
630/* harmony export */ __webpack_require__.d(__webpack_exports__, {
631/* harmony export */   "Funding": () => (/* binding */ Funding)
632/* harmony export */ });
633function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
634
635function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
636
637function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
638
639var Funding = /*#__PURE__*/_createClass(function Funding() {
640  _classCallCheck(this, Funding);
641
642  if (document.querySelector('#funding .accordion_selector select')) {
643    document.querySelector('#funding .accordion_selector select').onchange = function () {
644      var el = document.querySelector('#funding .accordion_selector select');
645      var selected = el.value;
646      document.querySelectorAll('#funding .accordion .option').forEach(function (el) {
647        el.classList.remove('open');
648      });
649      document.querySelectorAll('#funding .accordion .option').forEach(function (el) {
650        if (el.getAttribute('data-tab') == selected) {
651          el.classList.add('open');
652        }
653      });
654    }.bind(this);
655  }
656});
657
658/***/ }),
659
660/***/ "./assets/js/components/glide-slider.js":
661/*!**********************************************!*\
662  !*** ./assets/js/components/glide-slider.js ***!
663  \**********************************************/
664/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
665
666"use strict";
667__webpack_require__.r(__webpack_exports__);
668/* harmony export */ __webpack_require__.d(__webpack_exports__, {
669/* harmony export */   "GlideSlider": () => (/* binding */ GlideSlider)
670/* harmony export */ });
671/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js");
672/* harmony import */ var _glidejs_glide__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @glidejs/glide */ "./node_modules/@glidejs/glide/dist/glide.esm.js");
673function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
674
675function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
676
677function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
678
679//https://glidejs.com/
680
681
682var GlideSlider = /*#__PURE__*/_createClass(function GlideSlider(name, options) {
683  _classCallCheck(this, GlideSlider);
684
685  if (document.querySelector(name)) {
686    new _glidejs_glide__WEBPACK_IMPORTED_MODULE_1__["default"](name, options).mount();
687  }
688});
689
690/***/ }),
691
692/***/ "./assets/js/components/header-slider.js":
693/*!***********************************************!*\
694  !*** ./assets/js/components/header-slider.js ***!
695  \***********************************************/
696/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
697
698"use strict";
699__webpack_require__.r(__webpack_exports__);
700/* harmony export */ __webpack_require__.d(__webpack_exports__, {
701/* harmony export */   "HeaderSlider": () => (/* binding */ HeaderSlider)
702/* harmony export */ });
703/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js");
704function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
705
706function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
707
708function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
709
710
711var HeaderSlider = /*#__PURE__*/_createClass(function HeaderSlider() {
712  _classCallCheck(this, HeaderSlider);
713
714  if (document.querySelector('.dropdown-navigation-detailed .about .stories-of-change .content .restrict-width .custom-slider')) {
715    (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(document.querySelector('#header-slider-down'), function (e) {
716      e.preventDefault();
717      document.querySelector('.dropdown-navigation-detailed .about .stories-of-change .content .restrict-width .custom-slider').appendChild(document.querySelector('.dropdown-navigation-detailed .about .stories-of-change .stories-of-change-card-small:first-child'));
718    }.bind(this));
719    (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(document.querySelector('#header-slider-up'), function (e) {
720      e.preventDefault();
721      document.querySelector('.dropdown-navigation-detailed .about .stories-of-change .content .restrict-width .custom-slider').prepend(document.querySelector('.dropdown-navigation-detailed .about .stories-of-change .stories-of-change-card-small:last-child'));
722    }.bind(this));
723  }
724});
725
726/***/ }),
727
728/***/ "./assets/js/components/hover-popups.js":
729/*!**********************************************!*\
730  !*** ./assets/js/components/hover-popups.js ***!
731  \**********************************************/
732/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
733
734"use strict";
735__webpack_require__.r(__webpack_exports__);
736/* harmony export */ __webpack_require__.d(__webpack_exports__, {
737/* harmony export */   "HoverPopups": () => (/* binding */ HoverPopups)
738/* harmony export */ });
739/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js");
740function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
741
742function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
743
744function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
745
746
747var HoverPopups = /*#__PURE__*/_createClass(function HoverPopups(name, options) {
748  _classCallCheck(this, HoverPopups);
749
750  var tags = document.querySelectorAll('.single-detail .main .content-area.has-ajax-hover a');
751
752  if (tags) {
753    tags.forEach(function (el) {
754      var link = el.href;
755      fetch(link, {
756        method: 'GET'
757      }).then(function (response) {
758        return response.text();
759      }).then(function (html) {
760        var parser = new DOMParser();
761        var doc = parser.parseFromString(html, 'text/html');
762        var title = doc.querySelector('title');
763        var desc = doc.querySelector('meta[name="description"]');
764
765        if (typeof title != 'undefined' && title != null && typeof desc != 'undefined' && desc != null) {
766          var svg = '<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M14 7V2C14 2 10.9526 2 9 2" stroke="#4F6B74" stroke-width="1.2" stroke-linecap="square" stroke-linejoin="round"/><path d="M8 7.99828L13.5764 2.42188" stroke="#4F6B74" stroke-width="1.2" stroke-linecap="square" stroke-linejoin="round"/><path d="M14 10V13.3333C14 13.5101 13.9298 13.6797 13.8047 13.8047C13.6797 13.9298 13.5101 14 13.3333 14H2.66667C2.48986 14 2.32029 13.9298 2.19526 13.8047C2.07024 13.6797 2 13.5101 2 13.3333V2.66667C2 2.48986 2.07024 2.32029 2.19526 2.19526C2.32029 2.07024 2.48986 2 2.66667 2H6" stroke="#4F6B74" stroke-width="1.2" stroke-linecap="square" stroke-linejoin="round"/></svg>';
767          var popup = "<div class='hover'><p class='description'>" + desc.content + "</p><p class='title'>" + svg + title.innerHTML + "</p></div>";
768          el.innerHTML += popup;
769        }
770      }.bind(this).bind(el))["catch"](function (err) {
771        console.warn('Error generating popup.', err);
772      });
773    });
774  }
775});
776
777/***/ }),
778
779/***/ "./assets/js/components/impact-slider.js":
780/*!***********************************************!*\
781  !*** ./assets/js/components/impact-slider.js ***!
782  \***********************************************/
783/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
784
785"use strict";
786__webpack_require__.r(__webpack_exports__);
787/* harmony export */ __webpack_require__.d(__webpack_exports__, {
788/* harmony export */   "ImpactSlider": () => (/* binding */ ImpactSlider)
789/* harmony export */ });
790/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js");
791function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
792
793function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
794
795function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
796
797
798var ImpactSlider = /*#__PURE__*/function () {
799  function ImpactSlider() {
800    _classCallCheck(this, ImpactSlider);
801
802    if (document.querySelector('#stories-of-change')) {
803      var List = document.querySelectorAll('#stories-of-change .card-wrapper .year-warpper ul li span');
804      List.forEach(function (el) {
805        (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(el, function (e) {
806          e.preventDefault();
807          var year = el.getAttribute('data-year');
808
809          if (document.querySelector('#stories-of-change .year-' + year)) {
810            this.scrollToSmoothly(document.querySelector('#stories-of-change .year-' + year).offsetTop - 160, 500);
811          }
812        }.bind(this));
813      }.bind(this));
814      /*
815      
816      window.addEventListener('scroll', function(event) { 
817        let el = document.querySelectorAll('#stories-of-change .impact-story-card');
818        console.log(el);
819        let primaryElement = false;
820        el.forEach(function(p) {
821           inViewport(p, function(e) {
822            if(e && !p) {
823              primaryElement = p;
824            }
825          }.bind(p));
826         });
827        
828        p.classList.add('active');
829       });
830       */
831    }
832  }
833
834  _createClass(ImpactSlider, [{
835    key: "scrollToSmoothly",
836    value: function scrollToSmoothly(pos, time) {
837      var currentPos = window.pageYOffset;
838      var start = null;
839      if (time == null) time = 500;
840      pos = +pos, time = +time;
841      window.requestAnimationFrame(function step(currentTime) {
842        start = !start ? currentTime : start;
843        var progress = currentTime - start;
844
845        if (currentPos < pos) {
846          window.scrollTo(0, (pos - currentPos) * progress / time + currentPos);
847        } else {
848          window.scrollTo(0, currentPos - (currentPos - pos) * progress / time);
849        }
850
851        if (progress < time) {
852          window.requestAnimationFrame(step);
853        } else {
854          window.scrollTo(0, pos);
855        }
856      });
857    }
858  }]);
859
860  return ImpactSlider;
861}();
862
863/***/ }),
864
865/***/ "./assets/js/components/introduction.js":
866/*!**********************************************!*\
867  !*** ./assets/js/components/introduction.js ***!
868  \**********************************************/
869/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
870
871"use strict";
872__webpack_require__.r(__webpack_exports__);
873/* harmony export */ __webpack_require__.d(__webpack_exports__, {
874/* harmony export */   "Introduction": () => (/* binding */ Introduction)
875/* harmony export */ });
876function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
877
878function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
879
880function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
881
882var Introduction = /*#__PURE__*/_createClass(function Introduction() {
883  _classCallCheck(this, Introduction);
884
885  // 1. Handle mouse movement over individual list items
886  document.querySelectorAll('.introduction .quick-links li').forEach(function (element) {
887    element.addEventListener('mousemove', function (event) {
888      var item = this.dataset.item;
889      var parent = this.closest('.introduction .quick-links');
890      var itemTop = parent.getBoundingClientRect().top + window.scrollY;
891      var itemHeight = parent.offsetHeight;
892      var mouseY = event.pageY - itemTop;
893      var mousePercentage = mouseY / itemHeight * 100;
894      var translateY = (mousePercentage - 50) * 0.9;
895      document.querySelectorAll('.introduction .quick-links .images .image').forEach(function (img) {
896        img.classList.remove('hover');
897      });
898      var targetImage = document.querySelector(".introduction .quick-links .images .image.".concat(item));
899
900      if (targetImage) {
901        targetImage.classList.add('hover');
902      }
903
904      var imagesContainer = document.querySelector('.introduction .quick-links .images');
905
906      if (imagesContainer) {
907        imagesContainer.style.transform = "translateY(".concat(translateY, "px)");
908        imagesContainer.style.opacity = '1';
909      }
910    });
911  }); // 2. NEW: Handle mouse leaving the main quick-links container
912
913  var quickLinksContainer = document.querySelector('.introduction .quick-links');
914
915  if (quickLinksContainer) {
916    quickLinksContainer.addEventListener('mouseleave', function () {
917      // Remove 'hover' class from all images
918      document.querySelectorAll('.introduction .quick-links .images .image').forEach(function (img) {//img.classList.remove('hover');
919      }); // Optional: Reset the images container opacity back to 0 (hidden) when leaving
920
921      var imagesContainer = document.querySelector('.introduction .quick-links .images');
922
923      if (imagesContainer) {
924        imagesContainer.style.opacity = '0';
925      }
926    });
927  }
928});
929
930/***/ }),
931
932/***/ "./assets/js/components/location-map.js":
933/*!**********************************************!*\
934  !*** ./assets/js/components/location-map.js ***!
935  \**********************************************/
936/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
937
938"use strict";
939__webpack_require__.r(__webpack_exports__);
940/* harmony export */ __webpack_require__.d(__webpack_exports__, {
941/* harmony export */   "LocationMap": () => (/* binding */ LocationMap)
942/* harmony export */ });
943/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js");
944function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
945
946function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
947
948function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
949
950
951var LocationMap = /*#__PURE__*/_createClass(function LocationMap() {
952  _classCallCheck(this, LocationMap);
953
954  if (document.querySelector('.location-map')) {
955    document.querySelectorAll('.location-map [data-location]').forEach(function (el) {
956      el.addEventListener("mouseenter", function (e) {
957        if (document.querySelector('.location-map .location-icon[data-location="' + e.target.getAttribute('data-location') + '"]') && document.querySelector('.location-map .location-name[data-location="' + e.target.getAttribute('data-location') + '"]')) {
958          document.querySelector('.location-map .location-icon[data-location="' + e.target.getAttribute('data-location') + '"]').classList.add('active');
959          document.querySelector('.location-map .location-name[data-location="' + e.target.getAttribute('data-location') + '"]').classList.add('active');
960        }
961      });
962      el.addEventListener("mouseleave", function (e) {
963        if (document.querySelector('.location-map .location-icon[data-location="' + e.target.getAttribute('data-location') + '"]') && document.querySelector('.location-map .location-name[data-location="' + e.target.getAttribute('data-location') + '"]')) {
964          document.querySelector('.location-map .location-icon[data-location="' + e.target.getAttribute('data-location') + '"]').classList.remove('active');
965          document.querySelector('.location-map .location-name[data-location="' + e.target.getAttribute('data-location') + '"]').classList.remove('active');
966        }
967      });
968    });
969  }
970});
971
972/***/ }),
973
974/***/ "./assets/js/components/menu.js":
975/*!**************************************!*\
976  !*** ./assets/js/components/menu.js ***!
977  \**************************************/
978/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
979
980"use strict";
981__webpack_require__.r(__webpack_exports__);
982/* harmony export */ __webpack_require__.d(__webpack_exports__, {
983/* harmony export */   "Menu": () => (/* binding */ Menu)
984/* harmony export */ });
985/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js");
986function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
987
988function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
989
990function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
991
992
993var Menu = /*#__PURE__*/function () {
994  function Menu() {
995    _classCallCheck(this, Menu);
996
997    if (document.querySelector('header .header-navigation a')) {
998      document.querySelectorAll('header .header-navigation a,header .header-navigation .open-dropdown,header .user-navigation a,header .user-navigation .open-dropdown').forEach(function (el) {
999        if (el.nextElementSibling) {
1000          if (el.nextElementSibling.classList.contains("dropdown")) {
1001            el.parentNode.addEventListener("mouseenter", function (e) {
1002              this.showDropdown(el, e);
1003            }.bind(this));
1004            el.parentNode.addEventListener("click", function (e) {
1005              this.showDropdown(el, e);
1006            }.bind(this)); //el.parentNode.addEventListener("touchstart", function(e) { this.showDropdown(el, e) }.bind(this));
1007          }
1008        }
1009      }.bind(this)); //remove drop down if use hovers over search
1010
1011      document.querySelector('.search-navigation.fixed').addEventListener("mouseenter", function (e) {
1012        this.enableSearch;
1013      }.bind(this));
1014      document.querySelector('.search-navigation.fixed').addEventListener("click", function (e) {
1015        this.enableSearch;
1016      }.bind(this)); //document.querySelector('.search-navigation.fixed').addEventListener("touchstart", function(e) { this.enableSearch }.bind(this));
1017    }
1018
1019    if (document.querySelector('header')) {
1020      document.querySelector('header').addEventListener("mouseleave", this.removeHovers);
1021      document.querySelector('.bg-blur').addEventListener("click", this.removeHovers); //document.querySelector('.bg-blur').addEventListener("touchstart", this.removeHovers);
1022
1023      window.addEventListener('scroll', this.removeHovers);
1024    }
1025  }
1026
1027  _createClass(Menu, [{
1028    key: "showDropdown",
1029    value: function showDropdown(el, e) {
1030      if (!(0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.closest)(e.target, '.dropdown')) {
1031        e.preventDefault();
1032      }
1033
1034      document.querySelectorAll('header .header-navigation li, header .user-navigation li').forEach(function (el) {
1035        el.classList.remove('visible');
1036      });
1037      el.parentNode.classList.add('visible');
1038      document.querySelector('.bg-blur').classList.add('active');
1039    }
1040  }, {
1041    key: "removeHovers",
1042    value: function removeHovers(e) {
1043      document.querySelectorAll('header .header-navigation li, header .user-navigation li').forEach(function (el) {
1044        el.classList.remove('visible');
1045        document.querySelector('.bg-blur').classList.remove('active');
1046      });
1047    }
1048  }, {
1049    key: "enableSearch",
1050    value: function enableSearch(e) {
1051      e.preventDefault();
1052      document.querySelectorAll('header .header-navigation li').forEach(function (el) {
1053        el.classList.remove('visible');
1054        document.querySelector('.bg-blur').classList.remove('active');
1055      });
1056    }
1057  }]);
1058
1059  return Menu;
1060}();
1061
1062/***/ }),
1063
1064/***/ "./assets/js/components/notifications.js":
1065/*!***********************************************!*\
1066  !*** ./assets/js/components/notifications.js ***!
1067  \***********************************************/
1068/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1069
1070"use strict";
1071__webpack_require__.r(__webpack_exports__);
1072/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1073/* harmony export */   "Notifications": () => (/* binding */ Notifications)
1074/* harmony export */ });
1075/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js");
1076function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
1077
1078function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
1079
1080function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1081
1082
1083var Notifications = /*#__PURE__*/_createClass(function Notifications() {
1084  _classCallCheck(this, Notifications);
1085
1086  if (document.querySelector('.notifications .expand')) {
1087    (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(document.querySelector('.notifications .expand'), function () {
1088      document.querySelector('.notifications').classList.toggle("expanded");
1089      return false;
1090    }); //notifications scroll fix
1091
1092    if (document.querySelector('.notifications')) {
1093      var scrollableDiv = document.querySelector('.notifications');
1094      scrollableDiv.scrollTop = scrollableDiv.scrollHeight;
1095      (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(document.querySelector('.notifications .expand_wrapper .expand'), function (e) {
1096        e.preventDefault();
1097        var scrollableDiv = document.querySelector('.notifications');
1098        scrollableDiv.scrollTop = scrollableDiv.scrollHeight;
1099      }.bind(this));
1100    }
1101  }
1102});
1103
1104/***/ }),
1105
1106/***/ "./assets/js/components/open-login-popup.js":
1107/*!**************************************************!*\
1108  !*** ./assets/js/components/open-login-popup.js ***!
1109  \**************************************************/
1110/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1111
1112"use strict";
1113__webpack_require__.r(__webpack_exports__);
1114/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1115/* harmony export */   "OpenLoginPopup": () => (/* binding */ OpenLoginPopup)
1116/* harmony export */ });
1117/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js");
1118function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
1119
1120function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
1121
1122function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1123
1124
1125var OpenLoginPopup = /*#__PURE__*/_createClass(function OpenLoginPopup() {
1126  _classCallCheck(this, OpenLoginPopup);
1127
1128  var button_list = document.querySelectorAll('.open-login-popup');
1129  button_list.forEach(function (button) {
1130    (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(button, function (e) {
1131      e.preventDefault();
1132      var hasOpen = false;
1133      var hasAnimate = false;
1134
1135      if (document.querySelector('#login-popup').classList.contains("open")) {
1136        hasOpen = false;
1137      } else {
1138        hasOpen = true;
1139      }
1140
1141      if (hasOpen && document.querySelector('#login-popup').classList.contains("animate")) {
1142        document.querySelector('#login-popup').classList.remove('animate');
1143        setTimeout(function () {
1144          document.querySelector('#login-popup').classList.remove('open');
1145        }, 600);
1146        hasAnimate = true;
1147      } else if (hasOpen && !document.querySelector('#login-popup').classList.contains("animate")) {
1148        document.querySelector('#login-popup').classList.add('open');
1149        setTimeout(function () {
1150          document.querySelector('#login-popup').classList.add('animate');
1151        }, 10);
1152      } else {
1153        document.querySelector('#login-popup').classList.remove('animate');
1154        setTimeout(function () {
1155          document.querySelector('#login-popup').classList.remove('open');
1156        }, 600);
1157      }
1158
1159      return false;
1160    });
1161  });
1162  var button_list_mobile = document.querySelectorAll('.open-login-popup-mobile');
1163  button_list_mobile.forEach(function (button2) {
1164    console.log('run');
1165    (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(button2, function (e) {
1166      console.log('called');
1167      e.preventDefault();
1168      var hasOpen = false;
1169      var hasAnimate = false;
1170
1171      if (document.querySelector('#login-popup').classList.contains("open")) {
1172        hasOpen = false;
1173      } else {
1174        hasOpen = true;
1175      }
1176
1177      if (hasOpen && document.querySelector('#login-popup').classList.contains("animate")) {
1178        document.querySelector('#login-popup').classList.remove('animate');
1179        setTimeout(function () {
1180          document.querySelector('#login-popup').classList.remove('open');
1181        }, 600);
1182        hasAnimate = true;
1183      } else if (hasOpen && !document.querySelector('#login-popup').classList.contains("animate")) {
1184        document.querySelector('#login-popup').classList.add('open');
1185        setTimeout(function () {
1186          document.querySelector('#login-popup').classList.add('animate');
1187        }, 10);
1188      } else {
1189        document.querySelector('#login-popup').classList.remove('animate');
1190        setTimeout(function () {
1191          document.querySelector('#login-popup').classList.remove('open');
1192        }, 600);
1193      }
1194
1195      return false;
1196    });
1197  });
1198});
1199
1200/***/ }),
1201
1202/***/ "./assets/js/components/popup.js":
1203/*!***************************************!*\
1204  !*** ./assets/js/components/popup.js ***!
1205  \***************************************/
1206/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1207
1208"use strict";
1209__webpack_require__.r(__webpack_exports__);
1210/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1211/* harmony export */   "Popup": () => (/* binding */ Popup)
1212/* harmony export */ });
1213/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js");
1214function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
1215
1216function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
1217
1218function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1219
1220
1221var Popup = /*#__PURE__*/_createClass(function Popup() {
1222  var _this = this;
1223
1224  _classCallCheck(this, Popup);
1225
1226  if (document.querySelector('.popup')) {
1227    var open_popup = document.querySelectorAll('.open-popup');
1228    open_popup.forEach(function (el) {
1229      (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(el, function (e) {
1230        e.preventDefault();
1231        document.querySelector('.popup').classList.add('block');
1232        setTimeout(function () {
1233          document.querySelector('.popup').classList.add('open');
1234        }, 10);
1235      }.bind(_this));
1236    });
1237    (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(document.querySelector('.popup .modal .close'), function (e) {
1238      e.preventDefault();
1239      document.querySelector('.popup').classList.remove('open');
1240      setTimeout(function () {
1241        document.querySelector('.popup').classList.remove('block');
1242      }, 350);
1243    }.bind(this));
1244  }
1245});
1246
1247/***/ }),
1248
1249/***/ "./assets/js/components/responsive-menu.js":
1250/*!*************************************************!*\
1251  !*** ./assets/js/components/responsive-menu.js ***!
1252  \*************************************************/
1253/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1254
1255"use strict";
1256__webpack_require__.r(__webpack_exports__);
1257/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1258/* harmony export */   "ResponsiveMenu": () => (/* binding */ ResponsiveMenu)
1259/* harmony export */ });
1260/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js");
1261function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1262
1263function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
1264
1265function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
1266
1267function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
1268
1269
1270var ResponsiveMenu = /*#__PURE__*/function () {
1271  function ResponsiveMenu() {
1272    var _this = this;
1273
1274    _classCallCheck(this, ResponsiveMenu);
1275
1276    _defineProperty(this, "slideUp", function (target) {
1277      var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
1278      target.style.transitionProperty = 'height, margin, padding';
1279      target.style.transitionDuration = duration + 'ms';
1280      target.style.boxSizing = 'border-box';
1281      target.style.height = target.offsetHeight + 'px';
1282      target.offsetHeight;
1283      target.style.overflow = 'hidden';
1284      target.style.height = 0;
1285      target.style.paddingTop = 0;
1286      target.style.paddingBottom = 0;
1287      target.style.marginTop = 0;
1288      target.style.marginBottom = 0;
1289      window.setTimeout(function () {
1290        target.style.display = 'none';
1291        target.style.removeProperty('height');
1292        target.style.removeProperty('padding-top');
1293        target.style.removeProperty('padding-bottom');
1294        target.style.removeProperty('margin-top');
1295        target.style.removeProperty('margin-bottom');
1296        target.style.removeProperty('overflow');
1297        target.style.removeProperty('transition-duration');
1298        target.style.removeProperty('transition-property'); //alert("!");
1299      }, duration);
1300    });
1301
1302    _defineProperty(this, "slideDown", function (target) {
1303      var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
1304      target.style.removeProperty('display');
1305      var display = window.getComputedStyle(target).display;
1306      if (display === 'none') display = 'block';
1307      target.style.display = display;
1308      var height = target.offsetHeight;
1309      target.style.overflow = 'hidden';
1310      target.style.height = 0;
1311      target.style.paddingTop = 0;
1312      target.style.paddingBottom = 0;
1313      target.style.marginTop = 0;
1314      target.style.marginBottom = 0;
1315      target.offsetHeight;
1316      target.style.boxSizing = 'border-box';
1317      target.style.transitionProperty = "height, margin, padding";
1318      target.style.transitionDuration = duration + 'ms';
1319      target.style.height = height + 'px';
1320      target.style.removeProperty('padding-top');
1321      target.style.removeProperty('padding-bottom');
1322      target.style.removeProperty('margin-top');
1323      target.style.removeProperty('margin-bottom');
1324      window.setTimeout(function () {
1325        target.style.removeProperty('height');
1326        target.style.removeProperty('overflow');
1327        target.style.removeProperty('transition-duration');
1328        target.style.removeProperty('transition-property');
1329      }, duration);
1330    });
1331
1332    _defineProperty(this, "slideToggle", function (target) {
1333      var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
1334
1335      if (window.getComputedStyle(target).display === 'none') {
1336        target.parentNode.classList.add('open');
1337        return _this.slideDown(target, duration);
1338      } else {
1339        target.parentNode.classList.remove('open');
1340        return _this.slideUp(target, duration);
1341      }
1342    });
1343
1344    this.scrollPosition = 0;
1345
1346    if (document.getElementsByClassName('resp-menu-selector').length > 0) {
1347      (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(document.getElementsByClassName('resp-menu-selector')[0], function () {
1348        document.body.classList.toggle("resp-menu-open");
1349
1350        if (document.body.classList.contains('resp-menu-open')) {
1351          document.body.classList.add("resp-menu-open");
1352          this.lockViewportScroll();
1353        } else {
1354          document.body.classList.remove("resp-menu-open");
1355          this.unlockViewportScroll();
1356        }
1357      }.bind(this));
1358      (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClickDynamic)('.resp-menu-open .header-navigation-mobile nav > ul > li:not(.mobile-main) > span', function (e) {
1359        e.preventDefault();
1360        e.target.parentNode.classList.add('open-mobile-stage-1'); //this.slideToggle(e.target.nextElementSibling);
1361      }.bind(this));
1362      (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClickDynamic)('.resp-menu-open .header-navigation-mobile nav > ul > li:not(.mobile-main) > span > svg', function (e) {
1363        e.preventDefault();
1364        e.target.parentNode.parentNode.classList.add('open-mobile-stage-1'); //this.slideToggle(e.target.parentNode.nextElementSibling);
1365      }.bind(this));
1366      (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClickDynamic)('.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > span.title', function (e) {
1367        e.preventDefault();
1368        e.target.parentNode.parentNode.classList.remove('open-mobile-stage-1'); //this.slideToggle(e.target.parentNode.nextElementSibling);
1369      }.bind(this));
1370      (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClickDynamic)('.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile .has-dropdown', function (e) {
1371        e.preventDefault();
1372        e.target.parentNode.classList.toggle('open-mobile-stage-2');
1373        this.slideToggle(e.target.nextElementSibling);
1374      }.bind(this));
1375      (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClickDynamic)('.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile .has-dropdown > span,.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile .has-dropdown > svg', function (e) {
1376        e.preventDefault();
1377        e.target.parentNode.parentNode.classList.toggle('open-mobile-stage-2');
1378        this.slideToggle(e.target.parentNode.nextElementSibling);
1379      }.bind(this));
1380      (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClickDynamic)('.menu-style-1-title, .menu-style-1-title *', function (e) {
1381        e.preventDefault();
1382
1383        if (e.target.classList.contains('menu-style-1-title')) {
1384          if (e.target.classList.contains('open')) {
1385            e.target.classList.remove('open');
1386            this.slideUp(e.target.nextElementSibling);
1387          } else {
1388            e.target.classList.add('open');
1389            this.slideDown(e.target.nextElementSibling);
1390          }
1391        } else {
1392          var f = e.target.closest('.menu-style-1-title');
1393
1394          if (f.classList.contains('open')) {
1395            f.classList.remove('open');
1396            this.slideUp(f.nextElementSibling);
1397          } else {
1398            f.classList.add('open');
1399            this.slideDown(f.nextElementSibling);
1400          }
1401        }
1402      }.bind(this));
1403      (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClickDynamic)('.filter-form .filter-head, .filter-form .filter-head *', function (e) {
1404        e.preventDefault();
1405
1406        if (e.target.classList.contains('filter-head')) {
1407          if (e.target.classList.contains('open')) {
1408            e.target.classList.remove('open');
1409            this.slideUp(e.target.nextElementSibling);
1410          } else {
1411            e.target.classList.add('open');
1412            this.slideDown(e.target.nextElementSibling);
1413          }
1414        } else {
1415          var f = e.target.closest('.filter-head');
1416
1417          if (f.classList.contains('open')) {
1418            f.classList.remove('open');
1419            this.slideUp(f.nextElementSibling);
1420          } else {
1421            f.classList.add('open');
1422            this.slideDown(f.nextElementSibling);
1423          }
1424        }
1425      }.bind(this));
1426      var windowWidth = window.innerWidth;
1427      addEventListener("resize", function (event) {});
1428
1429      onresize = function onresize(event) {
1430        var newWindowWidth = window.innerWidth;
1431
1432        if (newWindowWidth !== windowWidth) {
1433          document.querySelectorAll('.filter-form .filter-head,.filter-form .filter-body, .menu-style-1,.menu-style-1-title,.dropdown-navigation-detailed,.dropdown-navigation,.header-navigation-mobile nav > ul > li').forEach(function (el) {
1434            //el.removeAttribute("style");
1435            //el.classList.remove('open');
1436            //document.body.classList.remove("resp-menu-open");
1437            //this.unlockViewportScroll();
1438            var isHorizontalResize = newWindowWidth < windowWidth;
1439
1440            if (isHorizontalResize) {
1441              el.removeAttribute("style");
1442            }
1443          }.bind(_this));
1444          document.querySelector('body').removeAttribute("style");
1445          document.querySelector('body').classList.remove("resp-menu-open");
1446        }
1447
1448        windowWidth = newWindowWidth;
1449      };
1450    }
1451  }
1452
1453  _createClass(ResponsiveMenu, [{
1454    key: "lockViewportScroll",
1455    value: function lockViewportScroll() {
1456      // Store the current scroll position
1457      this.scrollPosition = window.pageYOffset || document.documentElement.scrollTop;
1458      var body = document.querySelector('body'); // Add styles to body element to prevent scrolling
1459
1460      body.style.position = 'fixed';
1461      body.style.top = "-".concat(this.scrollPosition, "px");
1462      body.style.overflowY = 'scroll';
1463      body.style.width = '100%';
1464    }
1465  }, {
1466    key: "unlockViewportScroll",
1467    value: function unlockViewportScroll() {
1468      // Remove styles from body element to enable scrolling
1469      var body = document.querySelector('body');
1470      body.style.position = '';
1471      body.style.top = '';
1472      body.style.overflowY = '';
1473      body.style.width = ''; // Restore the previous scroll position
1474
1475      window.scrollTo(0, this.scrollPosition);
1476    }
1477  }]);
1478
1479  return ResponsiveMenu;
1480}();
1481
1482/***/ }),
1483
1484/***/ "./assets/js/components/scroll-class.js":
1485/*!**********************************************!*\
1486  !*** ./assets/js/components/scroll-class.js ***!
1487  \**********************************************/
1488/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1489
1490"use strict";
1491__webpack_require__.r(__webpack_exports__);
1492/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1493/* harmony export */   "ScrollClass": () => (/* binding */ ScrollClass)
1494/* harmony export */ });
1495function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1496
1497function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
1498
1499function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
1500
1501var ScrollClass = /*#__PURE__*/function () {
1502  function ScrollClass() {
1503    _classCallCheck(this, ScrollClass);
1504
1505    this.element = document.querySelector('header.scroll-up-enabled');
1506    this.lastScrollTop = 0;
1507    this.currentScrollTop = 0;
1508    this.init();
1509  }
1510
1511  _createClass(ScrollClass, [{
1512    key: "init",
1513    value: function init() {
1514      var _this = this;
1515
1516      window.addEventListener('scroll', function () {
1517        _this.currentScrollTop = window.pageYOffset || document.documentElement.scrollTop;
1518
1519        if (!document.querySelector('.resp-menu-open') && document.querySelector('.search-navigation') && !document.querySelector('.search-navigation').classList.contains('visible')) {
1520          if (_this.currentScrollTop > _this.lastScrollTop && _this.currentScrollTop > 200) {
1521            _this.element.classList.add('scroll-down');
1522
1523            _this.element.classList.remove('scroll-up');
1524
1525            if (document.querySelector('#login-popup').classList.contains('open')) {
1526              document.querySelector('.open-login-popup').click();
1527            }
1528          } else {
1529            _this.element.classList.add('scroll-up');
1530
1531            _this.element.classList.remove('scroll-down');
1532          }
1533
1534          _this.lastScrollTop = _this.currentScrollTop;
1535        }
1536      });
1537    }
1538  }]);
1539
1540  return ScrollClass;
1541}();
1542
1543/***/ }),
1544
1545/***/ "./assets/js/components/search-popups.js":
1546/*!***********************************************!*\
1547  !*** ./assets/js/components/search-popups.js ***!
1548  \***********************************************/
1549/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1550
1551"use strict";
1552__webpack_require__.r(__webpack_exports__);
1553/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1554/* harmony export */   "SearchPopup": () => (/* binding */ SearchPopup)
1555/* harmony export */ });
1556/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js");
1557function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
1558
1559function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
1560
1561function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1562
1563
1564var SearchPopup = /*#__PURE__*/_createClass(function SearchPopup(name, options) {
1565  _classCallCheck(this, SearchPopup);
1566
1567  this.controller = new AbortController();
1568  this.signal = this.controller.signal;
1569  var search_selectror = document.querySelectorAll('.search-toggle');
1570  var search_selector_mobile = document.querySelectorAll('.search-toggle-mobile');
1571
1572  if (search_selectror) {
1573    search_selectror.forEach(function (el) {
1574      (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(el, function (e) {
1575        e.preventDefault();
1576        var search_selectror = document.querySelector('.search-toggle');
1577        var search_wrapper = document.querySelector('.search-navigation.fixed');
1578        search_wrapper.classList.toggle('visible');
1579        document.querySelector('.search-navigation.fixed .search-loading').classList.remove('visible');
1580        document.querySelector('.search-navigation.fixed .search-suggestion-wrapper').classList.remove('visible');
1581        setTimeout(function () {
1582          var searchInput = document.querySelector('.search-navigation.fixed .search-bar-wrapper input');
1583          searchInput.focus();
1584        }, 300);
1585      }.bind(this));
1586    });
1587    (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(document.querySelector('.search-navigation.fixed #load-results'), function (e) {
1588      e.preventDefault();
1589      document.querySelector('.search-navigation.fixed .search-loading').classList.add('visible');
1590      document.querySelector('.search-navigation.fixed .search-suggestion-wrapper').classList.remove('visible');
1591      var url = document.querySelector('.search-navigation.fixed .search-bar-wrapper input').getAttribute('data-url');
1592      var value = document.querySelector('.search-navigation.fixed .search-bar-wrapper input').value;
1593      var wordlist = value.match(/\b(\w+)\b/g);
1594      var sendlist = [];
1595      var search = '';
1596
1597      var Typo = __webpack_require__(/*! typo-js */ "./node_modules/typo-js/typo.js");
1598
1599      var dictionary = new Typo("en_ZA", false, false, {
1600        dictionaryPath: myScriptData.siteUrl + "/wp-content/themes/SantheTheme v1/dictionaries"
1601      });
1602
1603      if (wordlist) {
1604        wordlist.forEach(function (word) {
1605          var is_spelled_correctly = dictionary.check(word);
1606
1607          if (is_spelled_correctly) {
1608            sendlist.push(word);
1609            search += word + ' ';
1610          } else {
1611            var array_of_suggestions = dictionary.suggest(word);
1612            sendlist.push(word);
1613            search += word + ' ';
1614
1615            if (array_of_suggestions.length) {
1616              sendlist.push(array_of_suggestions[0]);
1617              search += array_of_suggestions[0] + ' ';
1618            }
1619          }
1620        }.bind(dictionary));
1621      }
1622
1623      var data = new FormData();
1624      data.append('action', 'get_ajax_posts');
1625      data.append('terms', search);
1626      fetch(url, {
1627        method: 'POST',
1628        signal: this.signal,
1629        credentials: 'same-origin',
1630        body: data
1631      }).then(function (response) {
1632        return response.text();
1633      }).then(function (html) {
1634        console.log(html);
1635        document.querySelector('.search-navigation.fixed .search-loading').classList.remove('visible');
1636        document.querySelector('.search-navigation.fixed .search-suggestion-wrapper').classList.add('visible');
1637        document.querySelector('.search-navigation.fixed .search-suggestion-wrapper').innerHTML = html;
1638      }.bind(this))["catch"](function (err) {
1639        // There was an error
1640        document.querySelector('.default-content-area .card-wrapper').classList.remove("loading");
1641        console.warn('Something went wrong.', err);
1642      });
1643    }.bind(this));
1644  }
1645
1646  if (search_selector_mobile) {
1647    search_selector_mobile.forEach(function (el) {
1648      (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(el, function (e) {
1649        e.preventDefault();
1650        var search_selectror = document.querySelector('.search-toggle-mobile');
1651        var search_wrapper = document.querySelector('.search-mobile');
1652        search_wrapper.classList.toggle('visible');
1653        document.querySelector('.search-navigation.inline .search-loading').classList.remove('visible');
1654        document.querySelector('.search-navigation.inline .search-suggestion-wrapper').classList.remove('visible');
1655        setTimeout(function () {
1656          var searchInput = document.querySelector('.search-navigation.inline .search-bar-wrapper input');
1657          searchInput.focus();
1658        }, 300);
1659      }.bind(this));
1660    });
1661    (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(document.querySelector('.search-navigation.inline #load-results'), function (e) {
1662      e.preventDefault();
1663      document.querySelector('.search-navigation.inline .search-loading').classList.add('visible');
1664      document.querySelector('.search-navigation.inline .search-suggestion-wrapper').classList.remove('visible');
1665      var url = document.querySelector('.search-navigation.inline .search-bar-wrapper input').getAttribute('data-url');
1666      var value = document.querySelector('.search-navigation.inline .search-bar-wrapper input').value;
1667      var wordlist = value.match(/\b(\w+)\b/g);
1668      var sendlist = [];
1669      var search = '';
1670
1671      var Typo = __webpack_require__(/*! typo-js */ "./node_modules/typo-js/typo.js");
1672
1673      var dictionary = new Typo("en_ZA", false, false, {
1674        dictionaryPath: myScriptData.siteUrl + "/wp-content/themes/SantheTheme v1/dictionaries"
1675      });
1676
1677      if (wordlist) {
1678        wordlist.forEach(function (word) {
1679          var is_spelled_correctly = dictionary.check(word);
1680
1681          if (is_spelled_correctly) {
1682            sendlist.push(word);
1683            search += word + ' ';
1684          } else {
1685            var array_of_suggestions = dictionary.suggest(word);
1686            sendlist.push(word);
1687            search += word + ' ';
1688
1689            if (array_of_suggestions.length) {
1690              sendlist.push(array_of_suggestions[0]);
1691              search += array_of_suggestions[0] + ' ';
1692            }
1693          }
1694        }.bind(dictionary));
1695      }
1696
1697      var data = new FormData();
1698      data.append('action', 'get_ajax_posts');
1699      data.append('terms', search);
1700      fetch(url, {
1701        method: 'POST',
1702        signal: this.signal,
1703        credentials: 'same-origin',
1704        body: data
1705      }).then(function (response) {
1706        return response.text();
1707      }).then(function (html) {
1708        console.log(html);
1709        document.querySelector('.search-navigation.inline .search-loading').classList.remove('visible');
1710        document.querySelector('.search-navigation.inline .search-suggestion-wrapper').classList.add('visible');
1711        document.querySelector('.search-navigation.inline .search-suggestion-wrapper').innerHTML = html;
1712      }.bind(this))["catch"](function (err) {
1713        // There was an error
1714        document.querySelector('.default-content-area .card-wrapper').classList.remove("loading");
1715        console.warn('Something went wrong.', err);
1716      });
1717    }.bind(this));
1718  }
1719  /*document.querySelector('.search-navigation.fixed .search-bar-wrapper input').addEventListener('change', function() {
1720      console.log('You selected: ', this.value);
1721    });*/
1722
1723});
1724
1725/***/ }),
1726
1727/***/ "./assets/js/components/select-menu-style-1.js":
1728/*!*****************************************************!*\
1729  !*** ./assets/js/components/select-menu-style-1.js ***!
1730  \*****************************************************/
1731/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1732
1733"use strict";
1734__webpack_require__.r(__webpack_exports__);
1735/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1736/* harmony export */   "SelectMenu": () => (/* binding */ SelectMenu)
1737/* harmony export */ });
1738function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
1739
1740function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
1741
1742function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1743
1744var SelectMenu = /*#__PURE__*/_createClass(function SelectMenu() {
1745  _classCallCheck(this, SelectMenu);
1746
1747  if (document.querySelector('#menu-style-1-select')) {
1748    document.querySelector('#menu-style-1-select').onchange = function () {
1749      document.querySelector('#menu-style-1-select-form').submit();
1750    };
1751  }
1752});
1753
1754/***/ }),
1755
vendor: 558,527 bytes, lines 1756-8848
1756/***/ "./node_modules/choices.js/public/assets/scripts/choices.js":
1757/*!******************************************************************!*\
1758  !*** ./node_modules/choices.js/public/assets/scripts/choices.js ***!
1759  \******************************************************************/
1760/***/ ((module) => {
1761
1762/*! choices.js v10.2.0 | © 2022 Josh Johnson | https://github.com/jshjohnson/Choices#readme */
1763(function webpackUniversalModuleDefinition(root, factory) {
1764	if(true)
1765		module.exports = factory();
1766	else {}
1767})(window, function() {
1768return /******/ (function() { // webpackBootstrap
1769/******/ 	"use strict";
1770/******/ 	var __webpack_modules__ = ({
1771
1772/***/ 282:
1773/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_632__) {
1774
1775
1776
1777Object.defineProperty(exports, "__esModule", ({
1778  value: true
1779}));
1780exports.clearChoices = exports.activateChoices = exports.filterChoices = exports.addChoice = void 0;
1781var constants_1 = __nested_webpack_require_632__(883);
1782var addChoice = function (_a) {
1783  var value = _a.value,
1784    label = _a.label,
1785    id = _a.id,
1786    groupId = _a.groupId,
1787    disabled = _a.disabled,
1788    elementId = _a.elementId,
1789    customProperties = _a.customProperties,
1790    placeholder = _a.placeholder,
1791    keyCode = _a.keyCode;
1792  return {
1793    type: constants_1.ACTION_TYPES.ADD_CHOICE,
1794    value: value,
1795    label: label,
1796    id: id,
1797    groupId: groupId,
1798    disabled: disabled,
1799    elementId: elementId,
1800    customProperties: customProperties,
1801    placeholder: placeholder,
1802    keyCode: keyCode
1803  };
1804};
1805exports.addChoice = addChoice;
1806var filterChoices = function (results) {
1807  return {
1808    type: constants_1.ACTION_TYPES.FILTER_CHOICES,
1809    results: results
1810  };
1811};
1812exports.filterChoices = filterChoices;
1813var activateChoices = function (active) {
1814  if (active === void 0) {
1815    active = true;
1816  }
1817  return {
1818    type: constants_1.ACTION_TYPES.ACTIVATE_CHOICES,
1819    active: active
1820  };
1821};
1822exports.activateChoices = activateChoices;
1823var clearChoices = function () {
1824  return {
1825    type: constants_1.ACTION_TYPES.CLEAR_CHOICES
1826  };
1827};
1828exports.clearChoices = clearChoices;
1829
1830/***/ }),
1831
1832/***/ 783:
1833/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_2068__) {
1834
1835
1836
1837Object.defineProperty(exports, "__esModule", ({
1838  value: true
1839}));
1840exports.addGroup = void 0;
1841var constants_1 = __nested_webpack_require_2068__(883);
1842var addGroup = function (_a) {
1843  var value = _a.value,
1844    id = _a.id,
1845    active = _a.active,
1846    disabled = _a.disabled;
1847  return {
1848    type: constants_1.ACTION_TYPES.ADD_GROUP,
1849    value: value,
1850    id: id,
1851    active: active,
1852    disabled: disabled
1853  };
1854};
1855exports.addGroup = addGroup;
1856
1857/***/ }),
1858
1859/***/ 464:
1860/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_2595__) {
1861
1862
1863
1864Object.defineProperty(exports, "__esModule", ({
1865  value: true
1866}));
1867exports.highlightItem = exports.removeItem = exports.addItem = void 0;
1868var constants_1 = __nested_webpack_require_2595__(883);
1869var addItem = function (_a) {
1870  var value = _a.value,
1871    label = _a.label,
1872    id = _a.id,
1873    choiceId = _a.choiceId,
1874    groupId = _a.groupId,
1875    customProperties = _a.customProperties,
1876    placeholder = _a.placeholder,
1877    keyCode = _a.keyCode;
1878  return {
1879    type: constants_1.ACTION_TYPES.ADD_ITEM,
1880    value: value,
1881    label: label,
1882    id: id,
1883    choiceId: choiceId,
1884    groupId: groupId,
1885    customProperties: customProperties,
1886    placeholder: placeholder,
1887    keyCode: keyCode
1888  };
1889};
1890exports.addItem = addItem;
1891var removeItem = function (id, choiceId) {
1892  return {
1893    type: constants_1.ACTION_TYPES.REMOVE_ITEM,
1894    id: id,
1895    choiceId: choiceId
1896  };
1897};
1898exports.removeItem = removeItem;
1899var highlightItem = function (id, highlighted) {
1900  return {
1901    type: constants_1.ACTION_TYPES.HIGHLIGHT_ITEM,
1902    id: id,
1903    highlighted: highlighted
1904  };
1905};
1906exports.highlightItem = highlightItem;
1907
1908/***/ }),
1909
1910/***/ 137:
1911/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_3779__) {
1912
1913
1914
1915Object.defineProperty(exports, "__esModule", ({
1916  value: true
1917}));
1918exports.setIsLoading = exports.resetTo = exports.clearAll = void 0;
1919var constants_1 = __nested_webpack_require_3779__(883);
1920var clearAll = function () {
1921  return {
1922    type: constants_1.ACTION_TYPES.CLEAR_ALL
1923  };
1924};
1925exports.clearAll = clearAll;
1926var resetTo = function (state) {
1927  return {
1928    type: constants_1.ACTION_TYPES.RESET_TO,
1929    state: state
1930  };
1931};
1932exports.resetTo = resetTo;
1933var setIsLoading = function (isLoading) {
1934  return {
1935    type: constants_1.ACTION_TYPES.SET_IS_LOADING,
1936    isLoading: isLoading
1937  };
1938};
1939exports.setIsLoading = setIsLoading;
1940
1941/***/ }),
1942
1943/***/ 373:
1944/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_4494__) {
1945
1946
1947
1948var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
1949  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
1950    if (ar || !(i in from)) {
1951      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
1952      ar[i] = from[i];
1953    }
1954  }
1955  return to.concat(ar || Array.prototype.slice.call(from));
1956};
1957var __importDefault = this && this.__importDefault || function (mod) {
1958  return mod && mod.__esModule ? mod : {
1959    "default": mod
1960  };
1961};
1962Object.defineProperty(exports, "__esModule", ({
1963  value: true
1964}));
1965var deepmerge_1 = __importDefault(__nested_webpack_require_4494__(996));
1966/* eslint-disable @typescript-eslint/no-explicit-any */
1967var fuse_js_1 = __importDefault(__nested_webpack_require_4494__(221));
1968var choices_1 = __nested_webpack_require_4494__(282);
1969var groups_1 = __nested_webpack_require_4494__(783);
1970var items_1 = __nested_webpack_require_4494__(464);
1971var misc_1 = __nested_webpack_require_4494__(137);
1972var components_1 = __nested_webpack_require_4494__(520);
1973var constants_1 = __nested_webpack_require_4494__(883);
1974var defaults_1 = __nested_webpack_require_4494__(789);
1975var utils_1 = __nested_webpack_require_4494__(799);
1976var reducers_1 = __nested_webpack_require_4494__(655);
1977var store_1 = __importDefault(__nested_webpack_require_4494__(744));
1978var templates_1 = __importDefault(__nested_webpack_require_4494__(686));
1979/** @see {@link http://browserhacks.com/#hack-acea075d0ac6954f275a70023906050c} */
1980var IS_IE11 = '-ms-scroll-limit' in document.documentElement.style && '-ms-ime-align' in document.documentElement.style;
1981var USER_DEFAULTS = {};
1982/**
1983 * Choices
1984 * @author Josh Johnson<[email protected]>
1985 */
1986var Choices = /** @class */function () {
1987  function Choices(element, userConfig) {
1988    if (element === void 0) {
1989      element = '[data-choice]';
1990    }
1991    if (userConfig === void 0) {
1992      userConfig = {};
1993    }
1994    var _this = this;
1995    if (userConfig.allowHTML === undefined) {
1996      console.warn('Deprecation warning: allowHTML will default to false in a future release. To render HTML in Choices, you will need to set it to true. Setting allowHTML will suppress this message.');
1997    }
1998    this.config = deepmerge_1.default.all([defaults_1.DEFAULT_CONFIG, Choices.defaults.options, userConfig],
1999    // When merging array configs, replace with a copy of the userConfig array,
2000    // instead of concatenating with the default array
2001    {
2002      arrayMerge: function (_, sourceArray) {
2003        return __spreadArray([], sourceArray, true);
2004      }
2005    });
2006    var invalidConfigOptions = (0, utils_1.diff)(this.config, defaults_1.DEFAULT_CONFIG);
2007    if (invalidConfigOptions.length) {
2008      console.warn('Unknown config option(s) passed', invalidConfigOptions.join(', '));
2009    }
2010    var passedElement = typeof element === 'string' ? document.querySelector(element) : element;
2011    if (!(passedElement instanceof HTMLInputElement || passedElement instanceof HTMLSelectElement)) {
2012      throw TypeError('Expected one of the following types text|select-one|select-multiple');
2013    }
2014    this._isTextElement = passedElement.type === constants_1.TEXT_TYPE;
2015    this._isSelectOneElement = passedElement.type === constants_1.SELECT_ONE_TYPE;
2016    this._isSelectMultipleElement = passedElement.type === constants_1.SELECT_MULTIPLE_TYPE;
2017    this._isSelectElement = this._isSelectOneElement || this._isSelectMultipleElement;
2018    this.config.searchEnabled = this._isSelectMultipleElement || this.config.searchEnabled;
2019    if (!['auto', 'always'].includes("".concat(this.config.renderSelectedChoices))) {
2020      this.config.renderSelectedChoices = 'auto';
2021    }
2022    if (userConfig.addItemFilter && typeof userConfig.addItemFilter !== 'function') {
2023      var re = userConfig.addItemFilter instanceof RegExp ? userConfig.addItemFilter : new RegExp(userConfig.addItemFilter);
2024      this.config.addItemFilter = re.test.bind(re);
2025    }
2026    if (this._isTextElement) {
2027      this.passedElement = new components_1.WrappedInput({
2028        element: passedElement,
2029        classNames: this.config.classNames,
2030        delimiter: this.config.delimiter
2031      });
2032    } else {
2033      this.passedElement = new components_1.WrappedSelect({
2034        element: passedElement,
2035        classNames: this.config.classNames,
2036        template: function (data) {
2037          return _this._templates.option(data);
2038        }
2039      });
2040    }
2041    this.initialised = false;
2042    this._store = new store_1.default();
2043    this._initialState = reducers_1.defaultState;
2044    this._currentState = reducers_1.defaultState;
2045    this._prevState = reducers_1.defaultState;
2046    this._currentValue = '';
2047    this._canSearch = !!this.config.searchEnabled;
2048    this._isScrollingOnIe = false;
2049    this._highlightPosition = 0;
2050    this._wasTap = true;
2051    this._placeholderValue = this._generatePlaceholderValue();
2052    this._baseId = (0, utils_1.generateId)(this.passedElement.element, 'choices-');
2053    /**
2054     * setting direction in cases where it's explicitly set on passedElement
2055     * or when calculated direction is different from the document
2056     */
2057    this._direction = this.passedElement.dir;
2058    if (!this._direction) {
2059      var elementDirection = window.getComputedStyle(this.passedElement.element).direction;
2060      var documentDirection = window.getComputedStyle(document.documentElement).direction;
2061      if (elementDirection !== documentDirection) {
2062        this._direction = elementDirection;
2063      }
2064    }
2065    this._idNames = {
2066      itemChoice: 'item-choice'
2067    };
2068    if (this._isSelectElement) {
2069      // Assign preset groups from passed element
2070      this._presetGroups = this.passedElement.optionGroups;
2071      // Assign preset options from passed element
2072      this._presetOptions = this.passedElement.options;
2073    }
2074    // Assign preset choices from passed object
2075    this._presetChoices = this.config.choices;
2076    // Assign preset items from passed object first
2077    this._presetItems = this.config.items;
2078    // Add any values passed from attribute
2079    if (this.passedElement.value && this._isTextElement) {
2080      var splitValues = this.passedElement.value.split(this.config.delimiter);
2081      this._presetItems = this._presetItems.concat(splitValues);
2082    }
2083    // Create array of choices from option elements
2084    if (this.passedElement.options) {
2085      this.passedElement.options.forEach(function (option) {
2086        _this._presetChoices.push({
2087          value: option.value,
2088          label: option.innerHTML,
2089          selected: !!option.selected,
2090          disabled: option.disabled || option.parentNode.disabled,
2091          placeholder: option.value === '' || option.hasAttribute('placeholder'),
2092          customProperties: (0, utils_1.parseCustomProperties)(option.dataset.customProperties)
2093        });
2094      });
2095    }
2096    this._render = this._render.bind(this);
2097    this._onFocus = this._onFocus.bind(this);
2098    this._onBlur = this._onBlur.bind(this);
2099    this._onKeyUp = this._onKeyUp.bind(this);
2100    this._onKeyDown = this._onKeyDown.bind(this);
2101    this._onClick = this._onClick.bind(this);
2102    this._onTouchMove = this._onTouchMove.bind(this);
2103    this._onTouchEnd = this._onTouchEnd.bind(this);
2104    this._onMouseDown = this._onMouseDown.bind(this);
2105    this._onMouseOver = this._onMouseOver.bind(this);
2106    this._onFormReset = this._onFormReset.bind(this);
2107    this._onSelectKey = this._onSelectKey.bind(this);
2108    this._onEnterKey = this._onEnterKey.bind(this);
2109    this._onEscapeKey = this._onEscapeKey.bind(this);
2110    this._onDirectionKey = this._onDirectionKey.bind(this);
2111    this._onDeleteKey = this._onDeleteKey.bind(this);
2112    // If element has already been initialised with Choices, fail silently
2113    if (this.passedElement.isActive) {
2114      if (!this.config.silent) {
2115        console.warn('Trying to initialise Choices on element already initialised', {
2116          element: element
2117        });
2118      }
2119      this.initialised = true;
2120      return;
2121    }
2122    // Let's go
2123    this.init();
2124  }
2125  Object.defineProperty(Choices, "defaults", {
2126    get: function () {
2127      return Object.preventExtensions({
2128        get options() {
2129          return USER_DEFAULTS;
2130        },
2131        get templates() {
2132          return templates_1.default;
2133        }
2134      });
2135    },
2136    enumerable: false,
2137    configurable: true
2138  });
2139  Choices.prototype.init = function () {
2140    if (this.initialised) {
2141      return;
2142    }
2143    this._createTemplates();
2144    this._createElements();
2145    this._createStructure();
2146    this._store.subscribe(this._render);
2147    this._render();
2148    this._addEventListeners();
2149    var shouldDisable = !this.config.addItems || this.passedElement.element.hasAttribute('disabled');
2150    if (shouldDisable) {
2151      this.disable();
2152    }
2153    this.initialised = true;
2154    var callbackOnInit = this.config.callbackOnInit;
2155    // Run callback if it is a function
2156    if (callbackOnInit && typeof callbackOnInit === 'function') {
2157      callbackOnInit.call(this);
2158    }
2159  };
2160  Choices.prototype.destroy = function () {
2161    if (!this.initialised) {
2162      return;
2163    }
2164    this._removeEventListeners();
2165    this.passedElement.reveal();
2166    this.containerOuter.unwrap(this.passedElement.element);
2167    this.clearStore();
2168    if (this._isSelectElement) {
2169      this.passedElement.options = this._presetOptions;
2170    }
2171    this._templates = templates_1.default;
2172    this.initialised = false;
2173  };
2174  Choices.prototype.enable = function () {
2175    if (this.passedElement.isDisabled) {
2176      this.passedElement.enable();
2177    }
2178    if (this.containerOuter.isDisabled) {
2179      this._addEventListeners();
2180      this.input.enable();
2181      this.containerOuter.enable();
2182    }
2183    return this;
2184  };
2185  Choices.prototype.disable = function () {
2186    if (!this.passedElement.isDisabled) {
2187      this.passedElement.disable();
2188    }
2189    if (!this.containerOuter.isDisabled) {
2190      this._removeEventListeners();
2191      this.input.disable();
2192      this.containerOuter.disable();
2193    }
2194    return this;
2195  };
2196  Choices.prototype.highlightItem = function (item, runEvent) {
2197    if (runEvent === void 0) {
2198      runEvent = true;
2199    }
2200    if (!item || !item.id) {
2201      return this;
2202    }
2203    var id = item.id,
2204      _a = item.groupId,
2205      groupId = _a === void 0 ? -1 : _a,
2206      _b = item.value,
2207      value = _b === void 0 ? '' : _b,
2208      _c = item.label,
2209      label = _c === void 0 ? '' : _c;
2210    var group = groupId >= 0 ? this._store.getGroupById(groupId) : null;
2211    this._store.dispatch((0, items_1.highlightItem)(id, true));
2212    if (runEvent) {
2213      this.passedElement.triggerEvent(constants_1.EVENTS.highlightItem, {
2214        id: id,
2215        value: value,
2216        label: label,
2217        groupValue: group && group.value ? group.value : null
2218      });
2219    }
2220    return this;
2221  };
2222  Choices.prototype.unhighlightItem = function (item) {
2223    if (!item || !item.id) {
2224      return this;
2225    }
2226    var id = item.id,
2227      _a = item.groupId,
2228      groupId = _a === void 0 ? -1 : _a,
2229      _b = item.value,
2230      value = _b === void 0 ? '' : _b,
2231      _c = item.label,
2232      label = _c === void 0 ? '' : _c;
2233    var group = groupId >= 0 ? this._store.getGroupById(groupId) : null;
2234    this._store.dispatch((0, items_1.highlightItem)(id, false));
2235    this.passedElement.triggerEvent(constants_1.EVENTS.highlightItem, {
2236      id: id,
2237      value: value,
2238      label: label,
2239      groupValue: group && group.value ? group.value : null
2240    });
2241    return this;
2242  };
2243  Choices.prototype.highlightAll = function () {
2244    var _this = this;
2245    this._store.items.forEach(function (item) {
2246      return _this.highlightItem(item);
2247    });
2248    return this;
2249  };
2250  Choices.prototype.unhighlightAll = function () {
2251    var _this = this;
2252    this._store.items.forEach(function (item) {
2253      return _this.unhighlightItem(item);
2254    });
2255    return this;
2256  };
2257  Choices.prototype.removeActiveItemsByValue = function (value) {
2258    var _this = this;
2259    this._store.activeItems.filter(function (item) {
2260      return item.value === value;
2261    }).forEach(function (item) {
2262      return _this._removeItem(item);
2263    });
2264    return this;
2265  };
2266  Choices.prototype.removeActiveItems = function (excludedId) {
2267    var _this = this;
2268    this._store.activeItems.filter(function (_a) {
2269      var id = _a.id;
2270      return id !== excludedId;
2271    }).forEach(function (item) {
2272      return _this._removeItem(item);
2273    });
2274    return this;
2275  };
2276  Choices.prototype.removeHighlightedItems = function (runEvent) {
2277    var _this = this;
2278    if (runEvent === void 0) {
2279      runEvent = false;
2280    }
2281    this._store.highlightedActiveItems.forEach(function (item) {
2282      _this._removeItem(item);
2283      // If this action was performed by the user
2284      // trigger the event
2285      if (runEvent) {
2286        _this._triggerChange(item.value);
2287      }
2288    });
2289    return this;
2290  };
2291  Choices.prototype.showDropdown = function (preventInputFocus) {
2292    var _this = this;
2293    if (this.dropdown.isActive) {
2294      return this;
2295    }
2296    requestAnimationFrame(function () {
2297      _this.dropdown.show();
2298      _this.containerOuter.open(_this.dropdown.distanceFromTopWindow);
2299      if (!preventInputFocus && _this._canSearch) {
2300        _this.input.focus();
2301      }
2302      _this.passedElement.triggerEvent(constants_1.EVENTS.showDropdown, {});
2303    });
2304    return this;
2305  };
2306  Choices.prototype.hideDropdown = function (preventInputBlur) {
2307    var _this = this;
2308    if (!this.dropdown.isActive) {
2309      return this;
2310    }
2311    requestAnimationFrame(function () {
2312      _this.dropdown.hide();
2313      _this.containerOuter.close();
2314      if (!preventInputBlur && _this._canSearch) {
2315        _this.input.removeActiveDescendant();
2316        _this.input.blur();
2317      }
2318      _this.passedElement.triggerEvent(constants_1.EVENTS.hideDropdown, {});
2319    });
2320    return this;
2321  };
2322  Choices.prototype.getValue = function (valueOnly) {
2323    if (valueOnly === void 0) {
2324      valueOnly = false;
2325    }
2326    var values = this._store.activeItems.reduce(function (selectedItems, item) {
2327      var itemValue = valueOnly ? item.value : item;
2328      selectedItems.push(itemValue);
2329      return selectedItems;
2330    }, []);
2331    return this._isSelectOneElement ? values[0] : values;
2332  };
2333  Choices.prototype.setValue = function (items) {
2334    var _this = this;
2335    if (!this.initialised) {
2336      return this;
2337    }
2338    items.forEach(function (value) {
2339      return _this._setChoiceOrItem(value);
2340    });
2341    return this;
2342  };
2343  Choices.prototype.setChoiceByValue = function (value) {
2344    var _this = this;
2345    if (!this.initialised || this._isTextElement) {
2346      return this;
2347    }
2348    // If only one value has been passed, convert to array
2349    var choiceValue = Array.isArray(value) ? value : [value];
2350    // Loop through each value and
2351    choiceValue.forEach(function (val) {
2352      return _this._findAndSelectChoiceByValue(val);
2353    });
2354    return this;
2355  };
2356  /**
2357   * Set choices of select input via an array of objects (or function that returns array of object or promise of it),
2358   * a value field name and a label field name.
2359   * This behaves the same as passing items via the choices option but can be called after initialising Choices.
2360   * This can also be used to add groups of choices (see example 2); Optionally pass a true `replaceChoices` value to remove any existing choices.
2361   * Optionally pass a `customProperties` object to add additional data to your choices (useful when searching/filtering etc).
2362   *
2363   * **Input types affected:** select-one, select-multiple
2364   *
2365   * @example
2366   * ```js
2367   * const example = new Choices(element);
2368   *
2369   * example.setChoices([
2370   *   {value: 'One', label: 'Label One', disabled: true},
2371   *   {value: 'Two', label: 'Label Two', selected: true},
2372   *   {value: 'Three', label: 'Label Three'},
2373   * ], 'value', 'label', false);
2374   * ```
2375   *
2376   * @example
2377   * ```js
2378   * const example = new Choices(element);
2379   *
2380   * example.setChoices(async () => {
2381   *   try {
2382   *      const items = await fetch('/items');
2383   *      return items.json()
2384   *   } catch(err) {
2385   *      console.error(err)
2386   *   }
2387   * });
2388   * ```
2389   *
2390   * @example
2391   * ```js
2392   * const example = new Choices(element);
2393   *
2394   * example.setChoices([{
2395   *   label: 'Group one',
2396   *   id: 1,
2397   *   disabled: false,
2398   *   choices: [
2399   *     {value: 'Child One', label: 'Child One', selected: true},
2400   *     {value: 'Child Two', label: 'Child Two',  disabled: true},
2401   *     {value: 'Child Three', label: 'Child Three'},
2402   *   ]
2403   * },
2404   * {
2405   *   label: 'Group two',
2406   *   id: 2,
2407   *   disabled: false,
2408   *   choices: [
2409   *     {value: 'Child Four', label: 'Child Four', disabled: true},
2410   *     {value: 'Child Five', label: 'Child Five'},
2411   *     {value: 'Child Six', label: 'Child Six', customProperties: {
2412   *       description: 'Custom description about child six',
2413   *       random: 'Another random custom property'
2414   *     }},
2415   *   ]
2416   * }], 'value', 'label', false);
2417   * ```
2418   */
2419  Choices.prototype.setChoices = function (choicesArrayOrFetcher, value, label, replaceChoices) {
2420    var _this = this;
2421    if (choicesArrayOrFetcher === void 0) {
2422      choicesArrayOrFetcher = [];
2423    }
2424    if (value === void 0) {
2425      value = 'value';
2426    }
2427    if (label === void 0) {
2428      label = 'label';
2429    }
2430    if (replaceChoices === void 0) {
2431      replaceChoices = false;
2432    }
2433    if (!this.initialised) {
2434      throw new ReferenceError("setChoices was called on a non-initialized instance of Choices");
2435    }
2436    if (!this._isSelectElement) {
2437      throw new TypeError("setChoices can't be used with INPUT based Choices");
2438    }
2439    if (typeof value !== 'string' || !value) {
2440      throw new TypeError("value parameter must be a name of 'value' field in passed objects");
2441    }
2442    // Clear choices if needed
2443    if (replaceChoices) {
2444      this.clearChoices();
2445    }
2446    if (typeof choicesArrayOrFetcher === 'function') {
2447      // it's a choices fetcher function
2448      var fetcher_1 = choicesArrayOrFetcher(this);
2449      if (typeof Promise === 'function' && fetcher_1 instanceof Promise) {
2450        // that's a promise
2451        // eslint-disable-next-line no-promise-executor-return
2452        return new Promise(function (resolve) {
2453          return requestAnimationFrame(resolve);
2454        }).then(function () {
2455          return _this._handleLoadingState(true);
2456        }).then(function () {
2457          return fetcher_1;
2458        }).then(function (data) {
2459          return _this.setChoices(data, value, label, replaceChoices);
2460        }).catch(function (err) {
2461          if (!_this.config.silent) {
2462            console.error(err);
2463          }
2464        }).then(function () {
2465          return _this._handleLoadingState(false);
2466        }).then(function () {
2467          return _this;
2468        });
2469      }
2470      // function returned something else than promise, let's check if it's an array of choices
2471      if (!Array.isArray(fetcher_1)) {
2472        throw new TypeError(".setChoices first argument function must return either array of choices or Promise, got: ".concat(typeof fetcher_1));
2473      }
2474      // recursion with results, it's sync and choices were cleared already
2475      return this.setChoices(fetcher_1, value, label, false);
2476    }
2477    if (!Array.isArray(choicesArrayOrFetcher)) {
2478      throw new TypeError(".setChoices must be called either with array of choices with a function resulting into Promise of array of choices");
2479    }
2480    this.containerOuter.removeLoadingState();
2481    this._startLoading();
2482    choicesArrayOrFetcher.forEach(function (groupOrChoice) {
2483      if (groupOrChoice.choices) {
2484        _this._addGroup({
2485          id: groupOrChoice.id ? parseInt("".concat(groupOrChoice.id), 10) : null,
2486          group: groupOrChoice,
2487          valueKey: value,
2488          labelKey: label
2489        });
2490      } else {
2491        var choice = groupOrChoice;
2492        _this._addChoice({
2493          value: choice[value],
2494          label: choice[label],
2495          isSelected: !!choice.selected,
2496          isDisabled: !!choice.disabled,
2497          placeholder: !!choice.placeholder,
2498          customProperties: choice.customProperties
2499        });
2500      }
2501    });
2502    this._stopLoading();
2503    return this;
2504  };
2505  Choices.prototype.clearChoices = function () {
2506    this._store.dispatch((0, choices_1.clearChoices)());
2507    return this;
2508  };
2509  Choices.prototype.clearStore = function () {
2510    this._store.dispatch((0, misc_1.clearAll)());
2511    return this;
2512  };
2513  Choices.prototype.clearInput = function () {
2514    var shouldSetInputWidth = !this._isSelectOneElement;
2515    this.input.clear(shouldSetInputWidth);
2516    if (!this._isTextElement && this._canSearch) {
2517      this._isSearching = false;
2518      this._store.dispatch((0, choices_1.activateChoices)(true));
2519    }
2520    return this;
2521  };
2522  Choices.prototype._render = function () {
2523    if (this._store.isLoading()) {
2524      return;
2525    }
2526    this._currentState = this._store.state;
2527    var stateChanged = this._currentState.choices !== this._prevState.choices || this._currentState.groups !== this._prevState.groups || this._currentState.items !== this._prevState.items;
2528    var shouldRenderChoices = this._isSelectElement;
2529    var shouldRenderItems = this._currentState.items !== this._prevState.items;
2530    if (!stateChanged) {
2531      return;
2532    }
2533    if (shouldRenderChoices) {
2534      this._renderChoices();
2535    }
2536    if (shouldRenderItems) {
2537      this._renderItems();
2538    }
2539    this._prevState = this._currentState;
2540  };
2541  Choices.prototype._renderChoices = function () {
2542    var _this = this;
2543    var _a = this._store,
2544      activeGroups = _a.activeGroups,
2545      activeChoices = _a.activeChoices;
2546    var choiceListFragment = document.createDocumentFragment();
2547    this.choiceList.clear();
2548    if (this.config.resetScrollPosition) {
2549      requestAnimationFrame(function () {
2550        return _this.choiceList.scrollToTop();
2551      });
2552    }
2553    // If we have grouped options
2554    if (activeGroups.length >= 1 && !this._isSearching) {
2555      // If we have a placeholder choice along with groups
2556      var activePlaceholders = activeChoices.filter(function (activeChoice) {
2557        return activeChoice.placeholder === true && activeChoice.groupId === -1;
2558      });
2559      if (activePlaceholders.length >= 1) {
2560        choiceListFragment = this._createChoicesFragment(activePlaceholders, choiceListFragment);
2561      }
2562      choiceListFragment = this._createGroupsFragment(activeGroups, activeChoices, choiceListFragment);
2563    } else if (activeChoices.length >= 1) {
2564      choiceListFragment = this._createChoicesFragment(activeChoices, choiceListFragment);
2565    }
2566    // If we have choices to show
2567    if (choiceListFragment.childNodes && choiceListFragment.childNodes.length > 0) {
2568      var activeItems = this._store.activeItems;
2569      var canAddItem = this._canAddItem(activeItems, this.input.value);
2570      // ...and we can select them
2571      if (canAddItem.response) {
2572        // ...append them and highlight the first choice
2573        this.choiceList.append(choiceListFragment);
2574        this._highlightChoice();
2575      } else {
2576        var notice = this._getTemplate('notice', canAddItem.notice);
2577        this.choiceList.append(notice);
2578      }
2579    } else {
2580      // Otherwise show a notice
2581      var dropdownItem = void 0;
2582      var notice = void 0;
2583      if (this._isSearching) {
2584        notice = typeof this.config.noResultsText === 'function' ? this.config.noResultsText() : this.config.noResultsText;
2585        dropdownItem = this._getTemplate('notice', notice, 'no-results');
2586      } else {
2587        notice = typeof this.config.noChoicesText === 'function' ? this.config.noChoicesText() : this.config.noChoicesText;
2588        dropdownItem = this._getTemplate('notice', notice, 'no-choices');
2589      }
2590      this.choiceList.append(dropdownItem);
2591    }
2592  };
2593  Choices.prototype._renderItems = function () {
2594    var activeItems = this._store.activeItems || [];
2595    this.itemList.clear();
2596    // Create a fragment to store our list items
2597    // (so we don't have to update the DOM for each item)
2598    var itemListFragment = this._createItemsFragment(activeItems);
2599    // If we have items to add, append them
2600    if (itemListFragment.childNodes) {
2601      this.itemList.append(itemListFragment);
2602    }
2603  };
2604  Choices.prototype._createGroupsFragment = function (groups, choices, fragment) {
2605    var _this = this;
2606    if (fragment === void 0) {
2607      fragment = document.createDocumentFragment();
2608    }
2609    var getGroupChoices = function (group) {
2610      return choices.filter(function (choice) {
2611        if (_this._isSelectOneElement) {
2612          return choice.groupId === group.id;
2613        }
2614        return choice.groupId === group.id && (_this.config.renderSelectedChoices === 'always' || !choice.selected);
2615      });
2616    };
2617    // If sorting is enabled, filter groups
2618    if (this.config.shouldSort) {
2619      groups.sort(this.config.sorter);
2620    }
2621    groups.forEach(function (group) {
2622      var groupChoices = getGroupChoices(group);
2623      if (groupChoices.length >= 1) {
2624        var dropdownGroup = _this._getTemplate('choiceGroup', group);
2625        fragment.appendChild(dropdownGroup);
2626        _this._createChoicesFragment(groupChoices, fragment, true);
2627      }
2628    });
2629    return fragment;
2630  };
2631  Choices.prototype._createChoicesFragment = function (choices, fragment, withinGroup) {
2632    var _this = this;
2633    if (fragment === void 0) {
2634      fragment = document.createDocumentFragment();
2635    }
2636    if (withinGroup === void 0) {
2637      withinGroup = false;
2638    }
2639    // Create a fragment to store our list items (so we don't have to update the DOM for each item)
2640    var _a = this.config,
2641      renderSelectedChoices = _a.renderSelectedChoices,
2642      searchResultLimit = _a.searchResultLimit,
2643      renderChoiceLimit = _a.renderChoiceLimit;
2644    var filter = this._isSearching ? utils_1.sortByScore : this.config.sorter;
2645    var appendChoice = function (choice) {
2646      var shouldRender = renderSelectedChoices === 'auto' ? _this._isSelectOneElement || !choice.selected : true;
2647      if (shouldRender) {
2648        var dropdownItem = _this._getTemplate('choice', choice, _this.config.itemSelectText);
2649        fragment.appendChild(dropdownItem);
2650      }
2651    };
2652    var rendererableChoices = choices;
2653    if (renderSelectedChoices === 'auto' && !this._isSelectOneElement) {
2654      rendererableChoices = choices.filter(function (choice) {
2655        return !choice.selected;
2656      });
2657    }
2658    // Split array into placeholders and "normal" choices
2659    var _b = rendererableChoices.reduce(function (acc, choice) {
2660        if (choice.placeholder) {
2661          acc.placeholderChoices.push(choice);
2662        } else {
2663          acc.normalChoices.push(choice);
2664        }
2665        return acc;
2666      }, {
2667        placeholderChoices: [],
2668        normalChoices: []
2669      }),
2670      placeholderChoices = _b.placeholderChoices,
2671      normalChoices = _b.normalChoices;
2672    // If sorting is enabled or the user is searching, filter choices
2673    if (this.config.shouldSort || this._isSearching) {
2674      normalChoices.sort(filter);
2675    }
2676    var choiceLimit = rendererableChoices.length;
2677    // Prepend placeholeder
2678    var sortedChoices = this._isSelectOneElement ? __spreadArray(__spreadArray([], placeholderChoices, true), normalChoices, true) : normalChoices;
2679    if (this._isSearching) {
2680      choiceLimit = searchResultLimit;
2681    } else if (renderChoiceLimit && renderChoiceLimit > 0 && !withinGroup) {
2682      choiceLimit = renderChoiceLimit;
2683    }
2684    // Add each choice to dropdown within range
2685    for (var i = 0; i < choiceLimit; i += 1) {
2686      if (sortedChoices[i]) {
2687        appendChoice(sortedChoices[i]);
2688      }
2689    }
2690    return fragment;
2691  };
2692  Choices.prototype._createItemsFragment = function (items, fragment) {
2693    var _this = this;
2694    if (fragment === void 0) {
2695      fragment = document.createDocumentFragment();
2696    }
2697    // Create fragment to add elements to
2698    var _a = this.config,
2699      shouldSortItems = _a.shouldSortItems,
2700      sorter = _a.sorter,
2701      removeItemButton = _a.removeItemButton;
2702    // If sorting is enabled, filter items
2703    if (shouldSortItems && !this._isSelectOneElement) {
2704      items.sort(sorter);
2705    }
2706    if (this._isTextElement) {
2707      // Update the value of the hidden input
2708      this.passedElement.value = items.map(function (_a) {
2709        var value = _a.value;
2710        return value;
2711      }).join(this.config.delimiter);
2712    } else {
2713      // Update the options of the hidden input
2714      this.passedElement.options = items;
2715    }
2716    var addItemToFragment = function (item) {
2717      // Create new list element
2718      var listItem = _this._getTemplate('item', item, removeItemButton);
2719      // Append it to list
2720      fragment.appendChild(listItem);
2721    };
2722    // Add each list item to list
2723    items.forEach(addItemToFragment);
2724    return fragment;
2725  };
2726  Choices.prototype._triggerChange = function (value) {
2727    if (value === undefined || value === null) {
2728      return;
2729    }
2730    this.passedElement.triggerEvent(constants_1.EVENTS.change, {
2731      value: value
2732    });
2733  };
2734  Choices.prototype._selectPlaceholderChoice = function (placeholderChoice) {
2735    this._addItem({
2736      value: placeholderChoice.value,
2737      label: placeholderChoice.label,
2738      choiceId: placeholderChoice.id,
2739      groupId: placeholderChoice.groupId,
2740      placeholder: placeholderChoice.placeholder
2741    });
2742    this._triggerChange(placeholderChoice.value);
2743  };
2744  Choices.prototype._handleButtonAction = function (activeItems, element) {
2745    if (!activeItems || !element || !this.config.removeItems || !this.config.removeItemButton) {
2746      return;
2747    }
2748    var itemId = element.parentNode && element.parentNode.dataset.id;
2749    var itemToRemove = itemId && activeItems.find(function (item) {
2750      return item.id === parseInt(itemId, 10);
2751    });
2752    if (!itemToRemove) {
2753      return;
2754    }
2755    // Remove item associated with button
2756    this._removeItem(itemToRemove);
2757    this._triggerChange(itemToRemove.value);
2758    if (this._isSelectOneElement && this._store.placeholderChoice) {
2759      this._selectPlaceholderChoice(this._store.placeholderChoice);
2760    }
2761  };
2762  Choices.prototype._handleItemAction = function (activeItems, element, hasShiftKey) {
2763    var _this = this;
2764    if (hasShiftKey === void 0) {
2765      hasShiftKey = false;
2766    }
2767    if (!activeItems || !element || !this.config.removeItems || this._isSelectOneElement) {
2768      return;
2769    }
2770    var passedId = element.dataset.id;
2771    // We only want to select one item with a click
2772    // so we deselect any items that aren't the target
2773    // unless shift is being pressed
2774    activeItems.forEach(function (item) {
2775      if (item.id === parseInt("".concat(passedId), 10) && !item.highlighted) {
2776        _this.highlightItem(item);
2777      } else if (!hasShiftKey && item.highlighted) {
2778        _this.unhighlightItem(item);
2779      }
2780    });
2781    // Focus input as without focus, a user cannot do anything with a
2782    // highlighted item
2783    this.input.focus();
2784  };
2785  Choices.prototype._handleChoiceAction = function (activeItems, element) {
2786    if (!activeItems || !element) {
2787      return;
2788    }
2789    // If we are clicking on an option
2790    var id = element.dataset.id;
2791    var choice = id && this._store.getChoiceById(id);
2792    if (!choice) {
2793      return;
2794    }
2795    var passedKeyCode = activeItems[0] && activeItems[0].keyCode ? activeItems[0].keyCode : undefined;
2796    var hasActiveDropdown = this.dropdown.isActive;
2797    // Update choice keyCode
2798    choice.keyCode = passedKeyCode;
2799    this.passedElement.triggerEvent(constants_1.EVENTS.choice, {
2800      choice: choice
2801    });
2802    if (!choice.selected && !choice.disabled) {
2803      var canAddItem = this._canAddItem(activeItems, choice.value);
2804      if (canAddItem.response) {
2805        this._addItem({
2806          value: choice.value,
2807          label: choice.label,
2808          choiceId: choice.id,
2809          groupId: choice.groupId,
2810          customProperties: choice.customProperties,
2811          placeholder: choice.placeholder,
2812          keyCode: choice.keyCode
2813        });
2814        this._triggerChange(choice.value);
2815      }
2816    }
2817    this.clearInput();
2818    // We want to close the dropdown if we are dealing with a single select box
2819    if (hasActiveDropdown && this._isSelectOneElement) {
2820      this.hideDropdown(true);
2821      this.containerOuter.focus();
2822    }
2823  };
2824  Choices.prototype._handleBackspace = function (activeItems) {
2825    if (!this.config.removeItems || !activeItems) {
2826      return;
2827    }
2828    var lastItem = activeItems[activeItems.length - 1];
2829    var hasHighlightedItems = activeItems.some(function (item) {
2830      return item.highlighted;
2831    });
2832    // If editing the last item is allowed and there are not other selected items,
2833    // we can edit the item value. Otherwise if we can remove items, remove all selected items
2834    if (this.config.editItems && !hasHighlightedItems && lastItem) {
2835      this.input.value = lastItem.value;
2836      this.input.setWidth();
2837      this._removeItem(lastItem);
2838      this._triggerChange(lastItem.value);
2839    } else {
2840      if (!hasHighlightedItems) {
2841        // Highlight last item if none already highlighted
2842        this.highlightItem(lastItem, false);
2843      }
2844      this.removeHighlightedItems(true);
2845    }
2846  };
2847  Choices.prototype._startLoading = function () {
2848    this._store.dispatch((0, misc_1.setIsLoading)(true));
2849  };
2850  Choices.prototype._stopLoading = function () {
2851    this._store.dispatch((0, misc_1.setIsLoading)(false));
2852  };
2853  Choices.prototype._handleLoadingState = function (setLoading) {
2854    if (setLoading === void 0) {
2855      setLoading = true;
2856    }
2857    var placeholderItem = this.itemList.getChild(".".concat(this.config.classNames.placeholder));
2858    if (setLoading) {
2859      this.disable();
2860      this.containerOuter.addLoadingState();
2861      if (this._isSelectOneElement) {
2862        if (!placeholderItem) {
2863          placeholderItem = this._getTemplate('placeholder', this.config.loadingText);
2864          if (placeholderItem) {
2865            this.itemList.append(placeholderItem);
2866          }
2867        } else {
2868          placeholderItem.innerHTML = this.config.loadingText;
2869        }
2870      } else {
2871        this.input.placeholder = this.config.loadingText;
2872      }
2873    } else {
2874      this.enable();
2875      this.containerOuter.removeLoadingState();
2876      if (this._isSelectOneElement) {
2877        if (placeholderItem) {
2878          placeholderItem.innerHTML = this._placeholderValue || '';
2879        }
2880      } else {
2881        this.input.placeholder = this._placeholderValue || '';
2882      }
2883    }
2884  };
2885  Choices.prototype._handleSearch = function (value) {
2886    if (!this.input.isFocussed) {
2887      return;
2888    }
2889    var choices = this._store.choices;
2890    var _a = this.config,
2891      searchFloor = _a.searchFloor,
2892      searchChoices = _a.searchChoices;
2893    var hasUnactiveChoices = choices.some(function (option) {
2894      return !option.active;
2895    });
2896    // Check that we have a value to search and the input was an alphanumeric character
2897    if (value !== null && typeof value !== 'undefined' && value.length >= searchFloor) {
2898      var resultCount = searchChoices ? this._searchChoices(value) : 0;
2899      // Trigger search event
2900      this.passedElement.triggerEvent(constants_1.EVENTS.search, {
2901        value: value,
2902        resultCount: resultCount
2903      });
2904    } else if (hasUnactiveChoices) {
2905      // Otherwise reset choices to active
2906      this._isSearching = false;
2907      this._store.dispatch((0, choices_1.activateChoices)(true));
2908    }
2909  };
2910  Choices.prototype._canAddItem = function (activeItems, value) {
2911    var canAddItem = true;
2912    var notice = typeof this.config.addItemText === 'function' ? this.config.addItemText(value) : this.config.addItemText;
2913    if (!this._isSelectOneElement) {
2914      var isDuplicateValue = (0, utils_1.existsInArray)(activeItems, value);
2915      if (this.config.maxItemCount > 0 && this.config.maxItemCount <= activeItems.length) {
2916        // If there is a max entry limit and we have reached that limit
2917        // don't update
2918        canAddItem = false;
2919        notice = typeof this.config.maxItemText === 'function' ? this.config.maxItemText(this.config.maxItemCount) : this.config.maxItemText;
2920      }
2921      if (!this.config.duplicateItemsAllowed && isDuplicateValue && canAddItem) {
2922        canAddItem = false;
2923        notice = typeof this.config.uniqueItemText === 'function' ? this.config.uniqueItemText(value) : this.config.uniqueItemText;
2924      }
2925      if (this._isTextElement && this.config.addItems && canAddItem && typeof this.config.addItemFilter === 'function' && !this.config.addItemFilter(value)) {
2926        canAddItem = false;
2927        notice = typeof this.config.customAddItemText === 'function' ? this.config.customAddItemText(value) : this.config.customAddItemText;
2928      }
2929    }
2930    return {
2931      response: canAddItem,
2932      notice: notice
2933    };
2934  };
2935  Choices.prototype._searchChoices = function (value) {
2936    var newValue = typeof value === 'string' ? value.trim() : value;
2937    var currentValue = typeof this._currentValue === 'string' ? this._currentValue.trim() : this._currentValue;
2938    if (newValue.length < 1 && newValue === "".concat(currentValue, " ")) {
2939      return 0;
2940    }
2941    // If new value matches the desired length and is not the same as the current value with a space
2942    var haystack = this._store.searchableChoices;
2943    var needle = newValue;
2944    var options = Object.assign(this.config.fuseOptions, {
2945      keys: __spreadArray([], this.config.searchFields, true),
2946      includeMatches: true
2947    });
2948    var fuse = new fuse_js_1.default(haystack, options);
2949    var results = fuse.search(needle); // see https://github.com/krisk/Fuse/issues/303
2950    this._currentValue = newValue;
2951    this._highlightPosition = 0;
2952    this._isSearching = true;
2953    this._store.dispatch((0, choices_1.filterChoices)(results));
2954    return results.length;
2955  };
2956  Choices.prototype._addEventListeners = function () {
2957    var documentElement = document.documentElement;
2958    // capture events - can cancel event processing or propagation
2959    documentElement.addEventListener('touchend', this._onTouchEnd, true);
2960    this.containerOuter.element.addEventListener('keydown', this._onKeyDown, true);
2961    this.containerOuter.element.addEventListener('mousedown', this._onMouseDown, true);
2962    // passive events - doesn't call `preventDefault` or `stopPropagation`
2963    documentElement.addEventListener('click', this._onClick, {
2964      passive: true
2965    });
2966    documentElement.addEventListener('touchmove', this._onTouchMove, {
2967      passive: true
2968    });
2969    this.dropdown.element.addEventListener('mouseover', this._onMouseOver, {
2970      passive: true
2971    });
2972    if (this._isSelectOneElement) {
2973      this.containerOuter.element.addEventListener('focus', this._onFocus, {
2974        passive: true
2975      });
2976      this.containerOuter.element.addEventListener('blur', this._onBlur, {
2977        passive: true
2978      });
2979    }
2980    this.input.element.addEventListener('keyup', this._onKeyUp, {
2981      passive: true
2982    });
2983    this.input.element.addEventListener('focus', this._onFocus, {
2984      passive: true
2985    });
2986    this.input.element.addEventListener('blur', this._onBlur, {
2987      passive: true
2988    });
2989    if (this.input.element.form) {
2990      this.input.element.form.addEventListener('reset', this._onFormReset, {
2991        passive: true
2992      });
2993    }
2994    this.input.addEventListeners();
2995  };
2996  Choices.prototype._removeEventListeners = function () {
2997    var documentElement = document.documentElement;
2998    documentElement.removeEventListener('touchend', this._onTouchEnd, true);
2999    this.containerOuter.element.removeEventListener('keydown', this._onKeyDown, true);
3000    this.containerOuter.element.removeEventListener('mousedown', this._onMouseDown, true);
3001    documentElement.removeEventListener('click', this._onClick);
3002    documentElement.removeEventListener('touchmove', this._onTouchMove);
3003    this.dropdown.element.removeEventListener('mouseover', this._onMouseOver);
3004    if (this._isSelectOneElement) {
3005      this.containerOuter.element.removeEventListener('focus', this._onFocus);
3006      this.containerOuter.element.removeEventListener('blur', this._onBlur);
3007    }
3008    this.input.element.removeEventListener('keyup', this._onKeyUp);
3009    this.input.element.removeEventListener('focus', this._onFocus);
3010    this.input.element.removeEventListener('blur', this._onBlur);
3011    if (this.input.element.form) {
3012      this.input.element.form.removeEventListener('reset', this._onFormReset);
3013    }
3014    this.input.removeEventListeners();
3015  };
3016  Choices.prototype._onKeyDown = function (event) {
3017    var keyCode = event.keyCode;
3018    var activeItems = this._store.activeItems;
3019    var hasFocusedInput = this.input.isFocussed;
3020    var hasActiveDropdown = this.dropdown.isActive;
3021    var hasItems = this.itemList.hasChildren();
3022    var keyString = String.fromCharCode(keyCode);
3023    // eslint-disable-next-line no-control-regex
3024    var wasPrintableChar = /[^\x00-\x1F]/.test(keyString);
3025    var BACK_KEY = constants_1.KEY_CODES.BACK_KEY,
3026      DELETE_KEY = constants_1.KEY_CODES.DELETE_KEY,
3027      ENTER_KEY = constants_1.KEY_CODES.ENTER_KEY,
3028      A_KEY = constants_1.KEY_CODES.A_KEY,
3029      ESC_KEY = constants_1.KEY_CODES.ESC_KEY,
3030      UP_KEY = constants_1.KEY_CODES.UP_KEY,
3031      DOWN_KEY = constants_1.KEY_CODES.DOWN_KEY,
3032      PAGE_UP_KEY = constants_1.KEY_CODES.PAGE_UP_KEY,
3033      PAGE_DOWN_KEY = constants_1.KEY_CODES.PAGE_DOWN_KEY;
3034    if (!this._isTextElement && !hasActiveDropdown && wasPrintableChar) {
3035      this.showDropdown();
3036      if (!this.input.isFocussed) {
3037        /*
3038          We update the input value with the pressed key as
3039          the input was not focussed at the time of key press
3040          therefore does not have the value of the key.
3041        */
3042        this.input.value += event.key.toLowerCase();
3043      }
3044    }
3045    switch (keyCode) {
3046      case A_KEY:
3047        return this._onSelectKey(event, hasItems);
3048      case ENTER_KEY:
3049        return this._onEnterKey(event, activeItems, hasActiveDropdown);
3050      case ESC_KEY:
3051        return this._onEscapeKey(hasActiveDropdown);
3052      case UP_KEY:
3053      case PAGE_UP_KEY:
3054      case DOWN_KEY:
3055      case PAGE_DOWN_KEY:
3056        return this._onDirectionKey(event, hasActiveDropdown);
3057      case DELETE_KEY:
3058      case BACK_KEY:
3059        return this._onDeleteKey(event, activeItems, hasFocusedInput);
3060      default:
3061    }
3062  };
3063  Choices.prototype._onKeyUp = function (_a) {
3064    var target = _a.target,
3065      keyCode = _a.keyCode;
3066    var value = this.input.value;
3067    var activeItems = this._store.activeItems;
3068    var canAddItem = this._canAddItem(activeItems, value);
3069    var backKey = constants_1.KEY_CODES.BACK_KEY,
3070      deleteKey = constants_1.KEY_CODES.DELETE_KEY;
3071    // We are typing into a text input and have a value, we want to show a dropdown
3072    // notice. Otherwise hide the dropdown
3073    if (this._isTextElement) {
3074      var canShowDropdownNotice = canAddItem.notice && value;
3075      if (canShowDropdownNotice) {
3076        var dropdownItem = this._getTemplate('notice', canAddItem.notice);
3077        this.dropdown.element.innerHTML = dropdownItem.outerHTML;
3078        this.showDropdown(true);
3079      } else {
3080        this.hideDropdown(true);
3081      }
3082    } else {
3083      var wasRemovalKeyCode = keyCode === backKey || keyCode === deleteKey;
3084      var userHasRemovedValue = wasRemovalKeyCode && target && !target.value;
3085      var canReactivateChoices = !this._isTextElement && this._isSearching;
3086      var canSearch = this._canSearch && canAddItem.response;
3087      if (userHasRemovedValue && canReactivateChoices) {
3088        this._isSearching = false;
3089        this._store.dispatch((0, choices_1.activateChoices)(true));
3090      } else if (canSearch) {
3091        this._handleSearch(this.input.rawValue);
3092      }
3093    }
3094    this._canSearch = this.config.searchEnabled;
3095  };
3096  Choices.prototype._onSelectKey = function (event, hasItems) {
3097    var ctrlKey = event.ctrlKey,
3098      metaKey = event.metaKey;
3099    var hasCtrlDownKeyPressed = ctrlKey || metaKey;
3100    // If CTRL + A or CMD + A have been pressed and there are items to select
3101    if (hasCtrlDownKeyPressed && hasItems) {
3102      this._canSearch = false;
3103      var shouldHightlightAll = this.config.removeItems && !this.input.value && this.input.element === document.activeElement;
3104      if (shouldHightlightAll) {
3105        this.highlightAll();
3106      }
3107    }
3108  };
3109  Choices.prototype._onEnterKey = function (event, activeItems, hasActiveDropdown) {
3110    var target = event.target;
3111    var enterKey = constants_1.KEY_CODES.ENTER_KEY;
3112    var targetWasButton = target && target.hasAttribute('data-button');
3113    if (this._isTextElement && target && target.value) {
3114      var value = this.input.value;
3115      var canAddItem = this._canAddItem(activeItems, value);
3116      if (canAddItem.response) {
3117        this.hideDropdown(true);
3118        this._addItem({
3119          value: value
3120        });
3121        this._triggerChange(value);
3122        this.clearInput();
3123      }
3124    }
3125    if (targetWasButton) {
3126      this._handleButtonAction(activeItems, target);
3127      event.preventDefault();
3128    }
3129    if (hasActiveDropdown) {
3130      var highlightedChoice = this.dropdown.getChild(".".concat(this.config.classNames.highlightedState));
3131      if (highlightedChoice) {
3132        // add enter keyCode value
3133        if (activeItems[0]) {
3134          activeItems[0].keyCode = enterKey; // eslint-disable-line no-param-reassign
3135        }
3136
3137        this._handleChoiceAction(activeItems, highlightedChoice);
3138      }
3139      event.preventDefault();
3140    } else if (this._isSelectOneElement) {
3141      this.showDropdown();
3142      event.preventDefault();
3143    }
3144  };
3145  Choices.prototype._onEscapeKey = function (hasActiveDropdown) {
3146    if (hasActiveDropdown) {
3147      this.hideDropdown(true);
3148      this.containerOuter.focus();
3149    }
3150  };
3151  Choices.prototype._onDirectionKey = function (event, hasActiveDropdown) {
3152    var keyCode = event.keyCode,
3153      metaKey = event.metaKey;
3154    var downKey = constants_1.KEY_CODES.DOWN_KEY,
3155      pageUpKey = constants_1.KEY_CODES.PAGE_UP_KEY,
3156      pageDownKey = constants_1.KEY_CODES.PAGE_DOWN_KEY;
3157    // If up or down key is pressed, traverse through options
3158    if (hasActiveDropdown || this._isSelectOneElement) {
3159      this.showDropdown();
3160      this._canSearch = false;
3161      var directionInt = keyCode === downKey || keyCode === pageDownKey ? 1 : -1;
3162      var skipKey = metaKey || keyCode === pageDownKey || keyCode === pageUpKey;
3163      var selectableChoiceIdentifier = '[data-choice-selectable]';
3164      var nextEl = void 0;
3165      if (skipKey) {
3166        if (directionInt > 0) {
3167          nextEl = this.dropdown.element.querySelector("".concat(selectableChoiceIdentifier, ":last-of-type"));
3168        } else {
3169          nextEl = this.dropdown.element.querySelector(selectableChoiceIdentifier);
3170        }
3171      } else {
3172        var currentEl = this.dropdown.element.querySelector(".".concat(this.config.classNames.highlightedState));
3173        if (currentEl) {
3174          nextEl = (0, utils_1.getAdjacentEl)(currentEl, selectableChoiceIdentifier, directionInt);
3175        } else {
3176          nextEl = this.dropdown.element.querySelector(selectableChoiceIdentifier);
3177        }
3178      }
3179      if (nextEl) {
3180        // We prevent default to stop the cursor moving
3181        // when pressing the arrow
3182        if (!(0, utils_1.isScrolledIntoView)(nextEl, this.choiceList.element, directionInt)) {
3183          this.choiceList.scrollToChildElement(nextEl, directionInt);
3184        }
3185        this._highlightChoice(nextEl);
3186      }
3187      // Prevent default to maintain cursor position whilst
3188      // traversing dropdown options
3189      event.preventDefault();
3190    }
3191  };
3192  Choices.prototype._onDeleteKey = function (event, activeItems, hasFocusedInput) {
3193    var target = event.target;
3194    // If backspace or delete key is pressed and the input has no value
3195    if (!this._isSelectOneElement && !target.value && hasFocusedInput) {
3196      this._handleBackspace(activeItems);
3197      event.preventDefault();
3198    }
3199  };
3200  Choices.prototype._onTouchMove = function () {
3201    if (this._wasTap) {
3202      this._wasTap = false;
3203    }
3204  };
3205  Choices.prototype._onTouchEnd = function (event) {
3206    var target = (event || event.touches[0]).target;
3207    var touchWasWithinContainer = this._wasTap && this.containerOuter.element.contains(target);
3208    if (touchWasWithinContainer) {
3209      var containerWasExactTarget = target === this.containerOuter.element || target === this.containerInner.element;
3210      if (containerWasExactTarget) {
3211        if (this._isTextElement) {
3212          this.input.focus();
3213        } else if (this._isSelectMultipleElement) {
3214          this.showDropdown();
3215        }
3216      }
3217      // Prevents focus event firing
3218      event.stopPropagation();
3219    }
3220    this._wasTap = true;
3221  };
3222  /**
3223   * Handles mousedown event in capture mode for containetOuter.element
3224   */
3225  Choices.prototype._onMouseDown = function (event) {
3226    var target = event.target;
3227    if (!(target instanceof HTMLElement)) {
3228      return;
3229    }
3230    // If we have our mouse down on the scrollbar and are on IE11...
3231    if (IS_IE11 && this.choiceList.element.contains(target)) {
3232      // check if click was on a scrollbar area
3233      var firstChoice = this.choiceList.element.firstElementChild;
3234      var isOnScrollbar = this._direction === 'ltr' ? event.offsetX >= firstChoice.offsetWidth : event.offsetX < firstChoice.offsetLeft;
3235      this._isScrollingOnIe = isOnScrollbar;
3236    }
3237    if (target === this.input.element) {
3238      return;
3239    }
3240    var item = target.closest('[data-button],[data-item],[data-choice]');
3241    if (item instanceof HTMLElement) {
3242      var hasShiftKey = event.shiftKey;
3243      var activeItems = this._store.activeItems;
3244      var dataset = item.dataset;
3245      if ('button' in dataset) {
3246        this._handleButtonAction(activeItems, item);
3247      } else if ('item' in dataset) {
3248        this._handleItemAction(activeItems, item, hasShiftKey);
3249      } else if ('choice' in dataset) {
3250        this._handleChoiceAction(activeItems, item);
3251      }
3252    }
3253    event.preventDefault();
3254  };
3255  /**
3256   * Handles mouseover event over this.dropdown
3257   * @param {MouseEvent} event
3258   */
3259  Choices.prototype._onMouseOver = function (_a) {
3260    var target = _a.target;
3261    if (target instanceof HTMLElement && 'choice' in target.dataset) {
3262      this._highlightChoice(target);
3263    }
3264  };
3265  Choices.prototype._onClick = function (_a) {
3266    var target = _a.target;
3267    var clickWasWithinContainer = this.containerOuter.element.contains(target);
3268    if (clickWasWithinContainer) {
3269      if (!this.dropdown.isActive && !this.containerOuter.isDisabled) {
3270        if (this._isTextElement) {
3271          if (document.activeElement !== this.input.element) {
3272            this.input.focus();
3273          }
3274        } else {
3275          this.showDropdown();
3276          this.containerOuter.focus();
3277        }
3278      } else if (this._isSelectOneElement && target !== this.input.element && !this.dropdown.element.contains(target)) {
3279        this.hideDropdown();
3280      }
3281    } else {
3282      var hasHighlightedItems = this._store.highlightedActiveItems.length > 0;
3283      if (hasHighlightedItems) {
3284        this.unhighlightAll();
3285      }
3286      this.containerOuter.removeFocusState();
3287      this.hideDropdown(true);
3288    }
3289  };
3290  Choices.prototype._onFocus = function (_a) {
3291    var _b;
3292    var _this = this;
3293    var target = _a.target;
3294    var focusWasWithinContainer = target && this.containerOuter.element.contains(target);
3295    if (!focusWasWithinContainer) {
3296      return;
3297    }
3298    var focusActions = (_b = {}, _b[constants_1.TEXT_TYPE] = function () {
3299      if (target === _this.input.element) {
3300        _this.containerOuter.addFocusState();
3301      }
3302    }, _b[constants_1.SELECT_ONE_TYPE] = function () {
3303      _this.containerOuter.addFocusState();
3304      if (target === _this.input.element) {
3305        _this.showDropdown(true);
3306      }
3307    }, _b[constants_1.SELECT_MULTIPLE_TYPE] = function () {
3308      if (target === _this.input.element) {
3309        _this.showDropdown(true);
3310        // If element is a select box, the focused element is the container and the dropdown
3311        // isn't already open, focus and show dropdown
3312        _this.containerOuter.addFocusState();
3313      }
3314    }, _b);
3315    focusActions[this.passedElement.element.type]();
3316  };
3317  Choices.prototype._onBlur = function (_a) {
3318    var _b;
3319    var _this = this;
3320    var target = _a.target;
3321    var blurWasWithinContainer = target && this.containerOuter.element.contains(target);
3322    if (blurWasWithinContainer && !this._isScrollingOnIe) {
3323      var activeItems = this._store.activeItems;
3324      var hasHighlightedItems_1 = activeItems.some(function (item) {
3325        return item.highlighted;
3326      });
3327      var blurActions = (_b = {}, _b[constants_1.TEXT_TYPE] = function () {
3328        if (target === _this.input.element) {
3329          _this.containerOuter.removeFocusState();
3330          if (hasHighlightedItems_1) {
3331            _this.unhighlightAll();
3332          }
3333          _this.hideDropdown(true);
3334        }
3335      }, _b[constants_1.SELECT_ONE_TYPE] = function () {
3336        _this.containerOuter.removeFocusState();
3337        if (target === _this.input.element || target === _this.containerOuter.element && !_this._canSearch) {
3338          _this.hideDropdown(true);
3339        }
3340      }, _b[constants_1.SELECT_MULTIPLE_TYPE] = function () {
3341        if (target === _this.input.element) {
3342          _this.containerOuter.removeFocusState();
3343          _this.hideDropdown(true);
3344          if (hasHighlightedItems_1) {
3345            _this.unhighlightAll();
3346          }
3347        }
3348      }, _b);
3349      blurActions[this.passedElement.element.type]();
3350    } else {
3351      // On IE11, clicking the scollbar blurs our input and thus
3352      // closes the dropdown. To stop this, we refocus our input
3353      // if we know we are on IE *and* are scrolling.
3354      this._isScrollingOnIe = false;
3355      this.input.element.focus();
3356    }
3357  };
3358  Choices.prototype._onFormReset = function () {
3359    this._store.dispatch((0, misc_1.resetTo)(this._initialState));
3360  };
3361  Choices.prototype._highlightChoice = function (el) {
3362    var _this = this;
3363    if (el === void 0) {
3364      el = null;
3365    }
3366    var choices = Array.from(this.dropdown.element.querySelectorAll('[data-choice-selectable]'));
3367    if (!choices.length) {
3368      return;
3369    }
3370    var passedEl = el;
3371    var highlightedChoices = Array.from(this.dropdown.element.querySelectorAll(".".concat(this.config.classNames.highlightedState)));
3372    // Remove any highlighted choices
3373    highlightedChoices.forEach(function (choice) {
3374      choice.classList.remove(_this.config.classNames.highlightedState);
3375      choice.setAttribute('aria-selected', 'false');
3376    });
3377    if (passedEl) {
3378      this._highlightPosition = choices.indexOf(passedEl);
3379    } else {
3380      // Highlight choice based on last known highlight location
3381      if (choices.length > this._highlightPosition) {
3382        // If we have an option to highlight
3383        passedEl = choices[this._highlightPosition];
3384      } else {
3385        // Otherwise highlight the option before
3386        passedEl = choices[choices.length - 1];
3387      }
3388      if (!passedEl) {
3389        passedEl = choices[0];
3390      }
3391    }
3392    passedEl.classList.add(this.config.classNames.highlightedState);
3393    passedEl.setAttribute('aria-selected', 'true');
3394    this.passedElement.triggerEvent(constants_1.EVENTS.highlightChoice, {
3395      el: passedEl
3396    });
3397    if (this.dropdown.isActive) {
3398      // IE11 ignores aria-label and blocks virtual keyboard
3399      // if aria-activedescendant is set without a dropdown
3400      this.input.setActiveDescendant(passedEl.id);
3401      this.containerOuter.setActiveDescendant(passedEl.id);
3402    }
3403  };
3404  Choices.prototype._addItem = function (_a) {
3405    var value = _a.value,
3406      _b = _a.label,
3407      label = _b === void 0 ? null : _b,
3408      _c = _a.choiceId,
3409      choiceId = _c === void 0 ? -1 : _c,
3410      _d = _a.groupId,
3411      groupId = _d === void 0 ? -1 : _d,
3412      _e = _a.customProperties,
3413      customProperties = _e === void 0 ? {} : _e,
3414      _f = _a.placeholder,
3415      placeholder = _f === void 0 ? false : _f,
3416      _g = _a.keyCode,
3417      keyCode = _g === void 0 ? -1 : _g;
3418    var passedValue = typeof value === 'string' ? value.trim() : value;
3419    var items = this._store.items;
3420    var passedLabel = label || passedValue;
3421    var passedOptionId = choiceId || -1;
3422    var group = groupId >= 0 ? this._store.getGroupById(groupId) : null;
3423    var id = items ? items.length + 1 : 1;
3424    // If a prepended value has been passed, prepend it
3425    if (this.config.prependValue) {
3426      passedValue = this.config.prependValue + passedValue.toString();
3427    }
3428    // If an appended value has been passed, append it
3429    if (this.config.appendValue) {
3430      passedValue += this.config.appendValue.toString();
3431    }
3432    this._store.dispatch((0, items_1.addItem)({
3433      value: passedValue,
3434      label: passedLabel,
3435      id: id,
3436      choiceId: passedOptionId,
3437      groupId: groupId,
3438      customProperties: customProperties,
3439      placeholder: placeholder,
3440      keyCode: keyCode
3441    }));
3442    if (this._isSelectOneElement) {
3443      this.removeActiveItems(id);
3444    }
3445    // Trigger change event
3446    this.passedElement.triggerEvent(constants_1.EVENTS.addItem, {
3447      id: id,
3448      value: passedValue,
3449      label: passedLabel,
3450      customProperties: customProperties,
3451      groupValue: group && group.value ? group.value : null,
3452      keyCode: keyCode
3453    });
3454  };
3455  Choices.prototype._removeItem = function (item) {
3456    var id = item.id,
3457      value = item.value,
3458      label = item.label,
3459      customProperties = item.customProperties,
3460      choiceId = item.choiceId,
3461      groupId = item.groupId;
3462    var group = groupId && groupId >= 0 ? this._store.getGroupById(groupId) : null;
3463    if (!id || !choiceId) {
3464      return;
3465    }
3466    this._store.dispatch((0, items_1.removeItem)(id, choiceId));
3467    this.passedElement.triggerEvent(constants_1.EVENTS.removeItem, {
3468      id: id,
3469      value: value,
3470      label: label,
3471      customProperties: customProperties,
3472      groupValue: group && group.value ? group.value : null
3473    });
3474  };
3475  Choices.prototype._addChoice = function (_a) {
3476    var value = _a.value,
3477      _b = _a.label,
3478      label = _b === void 0 ? null : _b,
3479      _c = _a.isSelected,
3480      isSelected = _c === void 0 ? false : _c,
3481      _d = _a.isDisabled,
3482      isDisabled = _d === void 0 ? false : _d,
3483      _e = _a.groupId,
3484      groupId = _e === void 0 ? -1 : _e,
3485      _f = _a.customProperties,
3486      customProperties = _f === void 0 ? {} : _f,
3487      _g = _a.placeholder,
3488      placeholder = _g === void 0 ? false : _g,
3489      _h = _a.keyCode,
3490      keyCode = _h === void 0 ? -1 : _h;
3491    if (typeof value === 'undefined' || value === null) {
3492      return;
3493    }
3494    // Generate unique id
3495    var choices = this._store.choices;
3496    var choiceLabel = label || value;
3497    var choiceId = choices ? choices.length + 1 : 1;
3498    var choiceElementId = "".concat(this._baseId, "-").concat(this._idNames.itemChoice, "-").concat(choiceId);
3499    this._store.dispatch((0, choices_1.addChoice)({
3500      id: choiceId,
3501      groupId: groupId,
3502      elementId: choiceElementId,
3503      value: value,
3504      label: choiceLabel,
3505      disabled: isDisabled,
3506      customProperties: customProperties,
3507      placeholder: placeholder,
3508      keyCode: keyCode
3509    }));
3510    if (isSelected) {
3511      this._addItem({
3512        value: value,
3513        label: choiceLabel,
3514        choiceId: choiceId,
3515        customProperties: customProperties,
3516        placeholder: placeholder,
3517        keyCode: keyCode
3518      });
3519    }
3520  };
3521  Choices.prototype._addGroup = function (_a) {
3522    var _this = this;
3523    var group = _a.group,
3524      id = _a.id,
3525      _b = _a.valueKey,
3526      valueKey = _b === void 0 ? 'value' : _b,
3527      _c = _a.labelKey,
3528      labelKey = _c === void 0 ? 'label' : _c;
3529    var groupChoices = (0, utils_1.isType)('Object', group) ? group.choices : Array.from(group.getElementsByTagName('OPTION'));
3530    var groupId = id || Math.floor(new Date().valueOf() * Math.random());
3531    var isDisabled = group.disabled ? group.disabled : false;
3532    if (groupChoices) {
3533      this._store.dispatch((0, groups_1.addGroup)({
3534        value: group.label,
3535        id: groupId,
3536        active: true,
3537        disabled: isDisabled
3538      }));
3539      var addGroupChoices = function (choice) {
3540        var isOptDisabled = choice.disabled || choice.parentNode && choice.parentNode.disabled;
3541        _this._addChoice({
3542          value: choice[valueKey],
3543          label: (0, utils_1.isType)('Object', choice) ? choice[labelKey] : choice.innerHTML,
3544          isSelected: choice.selected,
3545          isDisabled: isOptDisabled,
3546          groupId: groupId,
3547          customProperties: choice.customProperties,
3548          placeholder: choice.placeholder
3549        });
3550      };
3551      groupChoices.forEach(addGroupChoices);
3552    } else {
3553      this._store.dispatch((0, groups_1.addGroup)({
3554        value: group.label,
3555        id: group.id,
3556        active: false,
3557        disabled: group.disabled
3558      }));
3559    }
3560  };
3561  Choices.prototype._getTemplate = function (template) {
3562    var _a;
3563    var args = [];
3564    for (var _i = 1; _i < arguments.length; _i++) {
3565      args[_i - 1] = arguments[_i];
3566    }
3567    return (_a = this._templates[template]).call.apply(_a, __spreadArray([this, this.config], args, false));
3568  };
3569  Choices.prototype._createTemplates = function () {
3570    var callbackOnCreateTemplates = this.config.callbackOnCreateTemplates;
3571    var userTemplates = {};
3572    if (callbackOnCreateTemplates && typeof callbackOnCreateTemplates === 'function') {
3573      userTemplates = callbackOnCreateTemplates.call(this, utils_1.strToEl);
3574    }
3575    this._templates = (0, deepmerge_1.default)(templates_1.default, userTemplates);
3576  };
3577  Choices.prototype._createElements = function () {
3578    this.containerOuter = new components_1.Container({
3579      element: this._getTemplate('containerOuter', this._direction, this._isSelectElement, this._isSelectOneElement, this.config.searchEnabled, this.passedElement.element.type, this.config.labelId),
3580      classNames: this.config.classNames,
3581      type: this.passedElement.element.type,
3582      position: this.config.position
3583    });
3584    this.containerInner = new components_1.Container({
3585      element: this._getTemplate('containerInner'),
3586      classNames: this.config.classNames,
3587      type: this.passedElement.element.type,
3588      position: this.config.position
3589    });
3590    this.input = new components_1.Input({
3591      element: this._getTemplate('input', this._placeholderValue),
3592      classNames: this.config.classNames,
3593      type: this.passedElement.element.type,
3594      preventPaste: !this.config.paste
3595    });
3596    this.choiceList = new components_1.List({
3597      element: this._getTemplate('choiceList', this._isSelectOneElement)
3598    });
3599    this.itemList = new components_1.List({
3600      element: this._getTemplate('itemList', this._isSelectOneElement)
3601    });
3602    this.dropdown = new components_1.Dropdown({
3603      element: this._getTemplate('dropdown'),
3604      classNames: this.config.classNames,
3605      type: this.passedElement.element.type
3606    });
3607  };
3608  Choices.prototype._createStructure = function () {
3609    // Hide original element
3610    this.passedElement.conceal();
3611    // Wrap input in container preserving DOM ordering
3612    this.containerInner.wrap(this.passedElement.element);
3613    // Wrapper inner container with outer container
3614    this.containerOuter.wrap(this.containerInner.element);
3615    if (this._isSelectOneElement) {
3616      this.input.placeholder = this.config.searchPlaceholderValue || '';
3617    } else if (this._placeholderValue) {
3618      this.input.placeholder = this._placeholderValue;
3619      this.input.setWidth();
3620    }
3621    this.containerOuter.element.appendChild(this.containerInner.element);
3622    this.containerOuter.element.appendChild(this.dropdown.element);
3623    this.containerInner.element.appendChild(this.itemList.element);
3624    if (!this._isTextElement) {
3625      this.dropdown.element.appendChild(this.choiceList.element);
3626    }
3627    if (!this._isSelectOneElement) {
3628      this.containerInner.element.appendChild(this.input.element);
3629    } else if (this.config.searchEnabled) {
3630      this.dropdown.element.insertBefore(this.input.element, this.dropdown.element.firstChild);
3631    }
3632    if (this._isSelectElement) {
3633      this._highlightPosition = 0;
3634      this._isSearching = false;
3635      this._startLoading();
3636      if (this._presetGroups.length) {
3637        this._addPredefinedGroups(this._presetGroups);
3638      } else {
3639        this._addPredefinedChoices(this._presetChoices);
3640      }
3641      this._stopLoading();
3642    }
3643    if (this._isTextElement) {
3644      this._addPredefinedItems(this._presetItems);
3645    }
3646  };
3647  Choices.prototype._addPredefinedGroups = function (groups) {
3648    var _this = this;
3649    // If we have a placeholder option
3650    var placeholderChoice = this.passedElement.placeholderOption;
3651    if (placeholderChoice && placeholderChoice.parentNode && placeholderChoice.parentNode.tagName === 'SELECT') {
3652      this._addChoice({
3653        value: placeholderChoice.value,
3654        label: placeholderChoice.innerHTML,
3655        isSelected: placeholderChoice.selected,
3656        isDisabled: placeholderChoice.disabled,
3657        placeholder: true
3658      });
3659    }
3660    groups.forEach(function (group) {
3661      return _this._addGroup({
3662        group: group,
3663        id: group.id || null
3664      });
3665    });
3666  };
3667  Choices.prototype._addPredefinedChoices = function (choices) {
3668    var _this = this;
3669    // If sorting is enabled or the user is searching, filter choices
3670    if (this.config.shouldSort) {
3671      choices.sort(this.config.sorter);
3672    }
3673    var hasSelectedChoice = choices.some(function (choice) {
3674      return choice.selected;
3675    });
3676    var firstEnabledChoiceIndex = choices.findIndex(function (choice) {
3677      return choice.disabled === undefined || !choice.disabled;
3678    });
3679    choices.forEach(function (choice, index) {
3680      var _a = choice.value,
3681        value = _a === void 0 ? '' : _a,
3682        label = choice.label,
3683        customProperties = choice.customProperties,
3684        placeholder = choice.placeholder;
3685      if (_this._isSelectElement) {
3686        // If the choice is actually a group
3687        if (choice.choices) {
3688          _this._addGroup({
3689            group: choice,
3690            id: choice.id || null
3691          });
3692        } else {
3693          /**
3694           * If there is a selected choice already or the choice is not the first in
3695           * the array, add each choice normally.
3696           *
3697           * Otherwise we pre-select the first enabled choice in the array ("select-one" only)
3698           */
3699          var shouldPreselect = _this._isSelectOneElement && !hasSelectedChoice && index === firstEnabledChoiceIndex;
3700          var isSelected = shouldPreselect ? true : choice.selected;
3701          var isDisabled = choice.disabled;
3702          _this._addChoice({
3703            value: value,
3704            label: label,
3705            isSelected: !!isSelected,
3706            isDisabled: !!isDisabled,
3707            placeholder: !!placeholder,
3708            customProperties: customProperties
3709          });
3710        }
3711      } else {
3712        _this._addChoice({
3713          value: value,
3714          label: label,
3715          isSelected: !!choice.selected,
3716          isDisabled: !!choice.disabled,
3717          placeholder: !!choice.placeholder,
3718          customProperties: customProperties
3719        });
3720      }
3721    });
3722  };
3723  Choices.prototype._addPredefinedItems = function (items) {
3724    var _this = this;
3725    items.forEach(function (item) {
3726      if (typeof item === 'object' && item.value) {
3727        _this._addItem({
3728          value: item.value,
3729          label: item.label,
3730          choiceId: item.id,
3731          customProperties: item.customProperties,
3732          placeholder: item.placeholder
3733        });
3734      }
3735      if (typeof item === 'string') {
3736        _this._addItem({
3737          value: item
3738        });
3739      }
3740    });
3741  };
3742  Choices.prototype._setChoiceOrItem = function (item) {
3743    var _this = this;
3744    var itemType = (0, utils_1.getType)(item).toLowerCase();
3745    var handleType = {
3746      object: function () {
3747        if (!item.value) {
3748          return;
3749        }
3750        // If we are dealing with a select input, we need to create an option first
3751        // that is then selected. For text inputs we can just add items normally.
3752        if (!_this._isTextElement) {
3753          _this._addChoice({
3754            value: item.value,
3755            label: item.label,
3756            isSelected: true,
3757            isDisabled: false,
3758            customProperties: item.customProperties,
3759            placeholder: item.placeholder
3760          });
3761        } else {
3762          _this._addItem({
3763            value: item.value,
3764            label: item.label,
3765            choiceId: item.id,
3766            customProperties: item.customProperties,
3767            placeholder: item.placeholder
3768          });
3769        }
3770      },
3771      string: function () {
3772        if (!_this._isTextElement) {
3773          _this._addChoice({
3774            value: item,
3775            label: item,
3776            isSelected: true,
3777            isDisabled: false
3778          });
3779        } else {
3780          _this._addItem({
3781            value: item
3782          });
3783        }
3784      }
3785    };
3786    handleType[itemType]();
3787  };
3788  Choices.prototype._findAndSelectChoiceByValue = function (value) {
3789    var _this = this;
3790    var choices = this._store.choices;
3791    // Check 'value' property exists and the choice isn't already selected
3792    var foundChoice = choices.find(function (choice) {
3793      return _this.config.valueComparer(choice.value, value);
3794    });
3795    if (foundChoice && !foundChoice.selected) {
3796      this._addItem({
3797        value: foundChoice.value,
3798        label: foundChoice.label,
3799        choiceId: foundChoice.id,
3800        groupId: foundChoice.groupId,
3801        customProperties: foundChoice.customProperties,
3802        placeholder: foundChoice.placeholder,
3803        keyCode: foundChoice.keyCode
3804      });
3805    }
3806  };
3807  Choices.prototype._generatePlaceholderValue = function () {
3808    if (this._isSelectElement && this.passedElement.placeholderOption) {
3809      var placeholderOption = this.passedElement.placeholderOption;
3810      return placeholderOption ? placeholderOption.text : null;
3811    }
3812    var _a = this.config,
3813      placeholder = _a.placeholder,
3814      placeholderValue = _a.placeholderValue;
3815    var dataset = this.passedElement.element.dataset;
3816    if (placeholder) {
3817      if (placeholderValue) {
3818        return placeholderValue;
3819      }
3820      if (dataset.placeholder) {
3821        return dataset.placeholder;
3822      }
3823    }
3824    return null;
3825  };
3826  return Choices;
3827}();
3828exports["default"] = Choices;
3829
3830/***/ }),
3831
3832/***/ 613:
3833/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_74916__) {
3834
3835
3836
3837Object.defineProperty(exports, "__esModule", ({
3838  value: true
3839}));
3840var utils_1 = __nested_webpack_require_74916__(799);
3841var constants_1 = __nested_webpack_require_74916__(883);
3842var Container = /** @class */function () {
3843  function Container(_a) {
3844    var element = _a.element,
3845      type = _a.type,
3846      classNames = _a.classNames,
3847      position = _a.position;
3848    this.element = element;
3849    this.classNames = classNames;
3850    this.type = type;
3851    this.position = position;
3852    this.isOpen = false;
3853    this.isFlipped = false;
3854    this.isFocussed = false;
3855    this.isDisabled = false;
3856    this.isLoading = false;
3857    this._onFocus = this._onFocus.bind(this);
3858    this._onBlur = this._onBlur.bind(this);
3859  }
3860  Container.prototype.addEventListeners = function () {
3861    this.element.addEventListener('focus', this._onFocus);
3862    this.element.addEventListener('blur', this._onBlur);
3863  };
3864  Container.prototype.removeEventListeners = function () {
3865    this.element.removeEventListener('focus', this._onFocus);
3866    this.element.removeEventListener('blur', this._onBlur);
3867  };
3868  /**
3869   * Determine whether container should be flipped based on passed
3870   * dropdown position
3871   */
3872  Container.prototype.shouldFlip = function (dropdownPos) {
3873    if (typeof dropdownPos !== 'number') {
3874      return false;
3875    }
3876    // If flip is enabled and the dropdown bottom position is
3877    // greater than the window height flip the dropdown.
3878    var shouldFlip = false;
3879    if (this.position === 'auto') {
3880      shouldFlip = !window.matchMedia("(min-height: ".concat(dropdownPos + 1, "px)")).matches;
3881    } else if (this.position === 'top') {
3882      shouldFlip = true;
3883    }
3884    return shouldFlip;
3885  };
3886  Container.prototype.setActiveDescendant = function (activeDescendantID) {
3887    this.element.setAttribute('aria-activedescendant', activeDescendantID);
3888  };
3889  Container.prototype.removeActiveDescendant = function () {
3890    this.element.removeAttribute('aria-activedescendant');
3891  };
3892  Container.prototype.open = function (dropdownPos) {
3893    this.element.classList.add(this.classNames.openState);
3894    this.element.setAttribute('aria-expanded', 'true');
3895    this.isOpen = true;
3896    if (this.shouldFlip(dropdownPos)) {
3897      this.element.classList.add(this.classNames.flippedState);
3898      this.isFlipped = true;
3899    }
3900  };
3901  Container.prototype.close = function () {
3902    this.element.classList.remove(this.classNames.openState);
3903    this.element.setAttribute('aria-expanded', 'false');
3904    this.removeActiveDescendant();
3905    this.isOpen = false;
3906    // A dropdown flips if it does not have space within the page
3907    if (this.isFlipped) {
3908      this.element.classList.remove(this.classNames.flippedState);
3909      this.isFlipped = false;
3910    }
3911  };
3912  Container.prototype.focus = function () {
3913    if (!this.isFocussed) {
3914      this.element.focus();
3915    }
3916  };
3917  Container.prototype.addFocusState = function () {
3918    this.element.classList.add(this.classNames.focusState);
3919  };
3920  Container.prototype.removeFocusState = function () {
3921    this.element.classList.remove(this.classNames.focusState);
3922  };
3923  Container.prototype.enable = function () {
3924    this.element.classList.remove(this.classNames.disabledState);
3925    this.element.removeAttribute('aria-disabled');
3926    if (this.type === constants_1.SELECT_ONE_TYPE) {
3927      this.element.setAttribute('tabindex', '0');
3928    }
3929    this.isDisabled = false;
3930  };
3931  Container.prototype.disable = function () {
3932    this.element.classList.add(this.classNames.disabledState);
3933    this.element.setAttribute('aria-disabled', 'true');
3934    if (this.type === constants_1.SELECT_ONE_TYPE) {
3935      this.element.setAttribute('tabindex', '-1');
3936    }
3937    this.isDisabled = true;
3938  };
3939  Container.prototype.wrap = function (element) {
3940    (0, utils_1.wrap)(element, this.element);
3941  };
3942  Container.prototype.unwrap = function (element) {
3943    if (this.element.parentNode) {
3944      // Move passed element outside this element
3945      this.element.parentNode.insertBefore(element, this.element);
3946      // Remove this element
3947      this.element.parentNode.removeChild(this.element);
3948    }
3949  };
3950  Container.prototype.addLoadingState = function () {
3951    this.element.classList.add(this.classNames.loadingState);
3952    this.element.setAttribute('aria-busy', 'true');
3953    this.isLoading = true;
3954  };
3955  Container.prototype.removeLoadingState = function () {
3956    this.element.classList.remove(this.classNames.loadingState);
3957    this.element.removeAttribute('aria-busy');
3958    this.isLoading = false;
3959  };
3960  Container.prototype._onFocus = function () {
3961    this.isFocussed = true;
3962  };
3963  Container.prototype._onBlur = function () {
3964    this.isFocussed = false;
3965  };
3966  return Container;
3967}();
3968exports["default"] = Container;
3969
3970/***/ }),
3971
3972/***/ 217:
3973/***/ (function(__unused_webpack_module, exports) {
3974
3975
3976
3977Object.defineProperty(exports, "__esModule", ({
3978  value: true
3979}));
3980var Dropdown = /** @class */function () {
3981  function Dropdown(_a) {
3982    var element = _a.element,
3983      type = _a.type,
3984      classNames = _a.classNames;
3985    this.element = element;
3986    this.classNames = classNames;
3987    this.type = type;
3988    this.isActive = false;
3989  }
3990  Object.defineProperty(Dropdown.prototype, "distanceFromTopWindow", {
3991    /**
3992     * Bottom position of dropdown in viewport coordinates
3993     */
3994    get: function () {
3995      return this.element.getBoundingClientRect().bottom;
3996    },
3997    enumerable: false,
3998    configurable: true
3999  });
4000  Dropdown.prototype.getChild = function (selector) {
4001    return this.element.querySelector(selector);
4002  };
4003  /**
4004   * Show dropdown to user by adding active state class
4005   */
4006  Dropdown.prototype.show = function () {
4007    this.element.classList.add(this.classNames.activeState);
4008    this.element.setAttribute('aria-expanded', 'true');
4009    this.isActive = true;
4010    return this;
4011  };
4012  /**
4013   * Hide dropdown from user
4014   */
4015  Dropdown.prototype.hide = function () {
4016    this.element.classList.remove(this.classNames.activeState);
4017    this.element.setAttribute('aria-expanded', 'false');
4018    this.isActive = false;
4019    return this;
4020  };
4021  return Dropdown;
4022}();
4023exports["default"] = Dropdown;
4024
4025/***/ }),
4026
4027/***/ 520:
4028/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_81090__) {
4029
4030
4031
4032var __importDefault = this && this.__importDefault || function (mod) {
4033  return mod && mod.__esModule ? mod : {
4034    "default": mod
4035  };
4036};
4037Object.defineProperty(exports, "__esModule", ({
4038  value: true
4039}));
4040exports.WrappedSelect = exports.WrappedInput = exports.List = exports.Input = exports.Container = exports.Dropdown = void 0;
4041var dropdown_1 = __importDefault(__nested_webpack_require_81090__(217));
4042exports.Dropdown = dropdown_1.default;
4043var container_1 = __importDefault(__nested_webpack_require_81090__(613));
4044exports.Container = container_1.default;
4045var input_1 = __importDefault(__nested_webpack_require_81090__(11));
4046exports.Input = input_1.default;
4047var list_1 = __importDefault(__nested_webpack_require_81090__(624));
4048exports.List = list_1.default;
4049var wrapped_input_1 = __importDefault(__nested_webpack_require_81090__(541));
4050exports.WrappedInput = wrapped_input_1.default;
4051var wrapped_select_1 = __importDefault(__nested_webpack_require_81090__(982));
4052exports.WrappedSelect = wrapped_select_1.default;
4053
4054/***/ }),
4055
4056/***/ 11:
4057/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_82125__) {
4058
4059
4060
4061Object.defineProperty(exports, "__esModule", ({
4062  value: true
4063}));
4064var utils_1 = __nested_webpack_require_82125__(799);
4065var constants_1 = __nested_webpack_require_82125__(883);
4066var Input = /** @class */function () {
4067  function Input(_a) {
4068    var element = _a.element,
4069      type = _a.type,
4070      classNames = _a.classNames,
4071      preventPaste = _a.preventPaste;
4072    this.element = element;
4073    this.type = type;
4074    this.classNames = classNames;
4075    this.preventPaste = preventPaste;
4076    this.isFocussed = this.element.isEqualNode(document.activeElement);
4077    this.isDisabled = element.disabled;
4078    this._onPaste = this._onPaste.bind(this);
4079    this._onInput = this._onInput.bind(this);
4080    this._onFocus = this._onFocus.bind(this);
4081    this._onBlur = this._onBlur.bind(this);
4082  }
4083  Object.defineProperty(Input.prototype, "placeholder", {
4084    set: function (placeholder) {
4085      this.element.placeholder = placeholder;
4086    },
4087    enumerable: false,
4088    configurable: true
4089  });
4090  Object.defineProperty(Input.prototype, "value", {
4091    get: function () {
4092      return (0, utils_1.sanitise)(this.element.value);
4093    },
4094    set: function (value) {
4095      this.element.value = value;
4096    },
4097    enumerable: false,
4098    configurable: true
4099  });
4100  Object.defineProperty(Input.prototype, "rawValue", {
4101    get: function () {
4102      return this.element.value;
4103    },
4104    enumerable: false,
4105    configurable: true
4106  });
4107  Input.prototype.addEventListeners = function () {
4108    this.element.addEventListener('paste', this._onPaste);
4109    this.element.addEventListener('input', this._onInput, {
4110      passive: true
4111    });
4112    this.element.addEventListener('focus', this._onFocus, {
4113      passive: true
4114    });
4115    this.element.addEventListener('blur', this._onBlur, {
4116      passive: true
4117    });
4118  };
4119  Input.prototype.removeEventListeners = function () {
4120    this.element.removeEventListener('input', this._onInput);
4121    this.element.removeEventListener('paste', this._onPaste);
4122    this.element.removeEventListener('focus', this._onFocus);
4123    this.element.removeEventListener('blur', this._onBlur);
4124  };
4125  Input.prototype.enable = function () {
4126    this.element.removeAttribute('disabled');
4127    this.isDisabled = false;
4128  };
4129  Input.prototype.disable = function () {
4130    this.element.setAttribute('disabled', '');
4131    this.isDisabled = true;
4132  };
4133  Input.prototype.focus = function () {
4134    if (!this.isFocussed) {
4135      this.element.focus();
4136    }
4137  };
4138  Input.prototype.blur = function () {
4139    if (this.isFocussed) {
4140      this.element.blur();
4141    }
4142  };
4143  Input.prototype.clear = function (setWidth) {
4144    if (setWidth === void 0) {
4145      setWidth = true;
4146    }
4147    if (this.element.value) {
4148      this.element.value = '';
4149    }
4150    if (setWidth) {
4151      this.setWidth();
4152    }
4153    return this;
4154  };
4155  /**
4156   * Set the correct input width based on placeholder
4157   * value or input value
4158   */
4159  Input.prototype.setWidth = function () {
4160    // Resize input to contents or placeholder
4161    var _a = this.element,
4162      style = _a.style,
4163      value = _a.value,
4164      placeholder = _a.placeholder;
4165    style.minWidth = "".concat(placeholder.length + 1, "ch");
4166    style.width = "".concat(value.length + 1, "ch");
4167  };
4168  Input.prototype.setActiveDescendant = function (activeDescendantID) {
4169    this.element.setAttribute('aria-activedescendant', activeDescendantID);
4170  };
4171  Input.prototype.removeActiveDescendant = function () {
4172    this.element.removeAttribute('aria-activedescendant');
4173  };
4174  Input.prototype._onInput = function () {
4175    if (this.type !== constants_1.SELECT_ONE_TYPE) {
4176      this.setWidth();
4177    }
4178  };
4179  Input.prototype._onPaste = function (event) {
4180    if (this.preventPaste) {
4181      event.preventDefault();
4182    }
4183  };
4184  Input.prototype._onFocus = function () {
4185    this.isFocussed = true;
4186  };
4187  Input.prototype._onBlur = function () {
4188    this.isFocussed = false;
4189  };
4190  return Input;
4191}();
4192exports["default"] = Input;
4193
4194/***/ }),
4195
4196/***/ 624:
4197/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_86127__) {
4198
4199
4200
4201Object.defineProperty(exports, "__esModule", ({
4202  value: true
4203}));
4204var constants_1 = __nested_webpack_require_86127__(883);
4205var List = /** @class */function () {
4206  function List(_a) {
4207    var element = _a.element;
4208    this.element = element;
4209    this.scrollPos = this.element.scrollTop;
4210    this.height = this.element.offsetHeight;
4211  }
4212  List.prototype.clear = function () {
4213    this.element.innerHTML = '';
4214  };
4215  List.prototype.append = function (node) {
4216    this.element.appendChild(node);
4217  };
4218  List.prototype.getChild = function (selector) {
4219    return this.element.querySelector(selector);
4220  };
4221  List.prototype.hasChildren = function () {
4222    return this.element.hasChildNodes();
4223  };
4224  List.prototype.scrollToTop = function () {
4225    this.element.scrollTop = 0;
4226  };
4227  List.prototype.scrollToChildElement = function (element, direction) {
4228    var _this = this;
4229    if (!element) {
4230      return;
4231    }
4232    var listHeight = this.element.offsetHeight;
4233    // Scroll position of dropdown
4234    var listScrollPosition = this.element.scrollTop + listHeight;
4235    var elementHeight = element.offsetHeight;
4236    // Distance from bottom of element to top of parent
4237    var elementPos = element.offsetTop + elementHeight;
4238    // Difference between the element and scroll position
4239    var destination = direction > 0 ? this.element.scrollTop + elementPos - listScrollPosition : element.offsetTop;
4240    requestAnimationFrame(function () {
4241      _this._animateScroll(destination, direction);
4242    });
4243  };
4244  List.prototype._scrollDown = function (scrollPos, strength, destination) {
4245    var easing = (destination - scrollPos) / strength;
4246    var distance = easing > 1 ? easing : 1;
4247    this.element.scrollTop = scrollPos + distance;
4248  };
4249  List.prototype._scrollUp = function (scrollPos, strength, destination) {
4250    var easing = (scrollPos - destination) / strength;
4251    var distance = easing > 1 ? easing : 1;
4252    this.element.scrollTop = scrollPos - distance;
4253  };
4254  List.prototype._animateScroll = function (destination, direction) {
4255    var _this = this;
4256    var strength = constants_1.SCROLLING_SPEED;
4257    var choiceListScrollTop = this.element.scrollTop;
4258    var continueAnimation = false;
4259    if (direction > 0) {
4260      this._scrollDown(choiceListScrollTop, strength, destination);
4261      if (choiceListScrollTop < destination) {
4262        continueAnimation = true;
4263      }
4264    } else {
4265      this._scrollUp(choiceListScrollTop, strength, destination);
4266      if (choiceListScrollTop > destination) {
4267        continueAnimation = true;
4268      }
4269    }
4270    if (continueAnimation) {
4271      requestAnimationFrame(function () {
4272        _this._animateScroll(destination, direction);
4273      });
4274    }
4275  };
4276  return List;
4277}();
4278exports["default"] = List;
4279
4280/***/ }),
4281
4282/***/ 730:
4283/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_88948__) {
4284
4285
4286
4287Object.defineProperty(exports, "__esModule", ({
4288  value: true
4289}));
4290var utils_1 = __nested_webpack_require_88948__(799);
4291var WrappedElement = /** @class */function () {
4292  function WrappedElement(_a) {
4293    var element = _a.element,
4294      classNames = _a.classNames;
4295    this.element = element;
4296    this.classNames = classNames;
4297    if (!(element instanceof HTMLInputElement) && !(element instanceof HTMLSelectElement)) {
4298      throw new TypeError('Invalid element passed');
4299    }
4300    this.isDisabled = false;
4301  }
4302  Object.defineProperty(WrappedElement.prototype, "isActive", {
4303    get: function () {
4304      return this.element.dataset.choice === 'active';
4305    },
4306    enumerable: false,
4307    configurable: true
4308  });
4309  Object.defineProperty(WrappedElement.prototype, "dir", {
4310    get: function () {
4311      return this.element.dir;
4312    },
4313    enumerable: false,
4314    configurable: true
4315  });
4316  Object.defineProperty(WrappedElement.prototype, "value", {
4317    get: function () {
4318      return this.element.value;
4319    },
4320    set: function (value) {
4321      // you must define setter here otherwise it will be readonly property
4322      this.element.value = value;
4323    },
4324    enumerable: false,
4325    configurable: true
4326  });
4327  WrappedElement.prototype.conceal = function () {
4328    // Hide passed input
4329    this.element.classList.add(this.classNames.input);
4330    this.element.hidden = true;
4331    // Remove element from tab index
4332    this.element.tabIndex = -1;
4333    // Backup original styles if any
4334    var origStyle = this.element.getAttribute('style');
4335    if (origStyle) {
4336      this.element.setAttribute('data-choice-orig-style', origStyle);
4337    }
4338    this.element.setAttribute('data-choice', 'active');
4339  };
4340  WrappedElement.prototype.reveal = function () {
4341    // Reinstate passed element
4342    this.element.classList.remove(this.classNames.input);
4343    this.element.hidden = false;
4344    this.element.removeAttribute('tabindex');
4345    // Recover original styles if any
4346    var origStyle = this.element.getAttribute('data-choice-orig-style');
4347    if (origStyle) {
4348      this.element.removeAttribute('data-choice-orig-style');
4349      this.element.setAttribute('style', origStyle);
4350    } else {
4351      this.element.removeAttribute('style');
4352    }
4353    this.element.removeAttribute('data-choice');
4354    // Re-assign values - this is weird, I know
4355    // @todo Figure out why we need to do this
4356    this.element.value = this.element.value; // eslint-disable-line no-self-assign
4357  };
4358
4359  WrappedElement.prototype.enable = function () {
4360    this.element.removeAttribute('disabled');
4361    this.element.disabled = false;
4362    this.isDisabled = false;
4363  };
4364  WrappedElement.prototype.disable = function () {
4365    this.element.setAttribute('disabled', '');
4366    this.element.disabled = true;
4367    this.isDisabled = true;
4368  };
4369  WrappedElement.prototype.triggerEvent = function (eventType, data) {
4370    (0, utils_1.dispatchEvent)(this.element, eventType, data);
4371  };
4372  return WrappedElement;
4373}();
4374exports["default"] = WrappedElement;
4375
4376/***/ }),
4377
4378/***/ 541:
4379/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_92021__) {
4380
4381
4382
4383var __extends = this && this.__extends || function () {
4384  var extendStatics = function (d, b) {
4385    extendStatics = Object.setPrototypeOf || {
4386      __proto__: []
4387    } instanceof Array && function (d, b) {
4388      d.__proto__ = b;
4389    } || function (d, b) {
4390      for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
4391    };
4392    return extendStatics(d, b);
4393  };
4394  return function (d, b) {
4395    if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
4396    extendStatics(d, b);
4397    function __() {
4398      this.constructor = d;
4399    }
4400    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
4401  };
4402}();
4403var __importDefault = this && this.__importDefault || function (mod) {
4404  return mod && mod.__esModule ? mod : {
4405    "default": mod
4406  };
4407};
4408Object.defineProperty(exports, "__esModule", ({
4409  value: true
4410}));
4411var wrapped_element_1 = __importDefault(__nested_webpack_require_92021__(730));
4412var WrappedInput = /** @class */function (_super) {
4413  __extends(WrappedInput, _super);
4414  function WrappedInput(_a) {
4415    var element = _a.element,
4416      classNames = _a.classNames,
4417      delimiter = _a.delimiter;
4418    var _this = _super.call(this, {
4419      element: element,
4420      classNames: classNames
4421    }) || this;
4422    _this.delimiter = delimiter;
4423    return _this;
4424  }
4425  Object.defineProperty(WrappedInput.prototype, "value", {
4426    get: function () {
4427      return this.element.value;
4428    },
4429    set: function (value) {
4430      this.element.setAttribute('value', value);
4431      this.element.value = value;
4432    },
4433    enumerable: false,
4434    configurable: true
4435  });
4436  return WrappedInput;
4437}(wrapped_element_1.default);
4438exports["default"] = WrappedInput;
4439
4440/***/ }),
4441
4442/***/ 982:
4443/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_93875__) {
4444
4445
4446
4447var __extends = this && this.__extends || function () {
4448  var extendStatics = function (d, b) {
4449    extendStatics = Object.setPrototypeOf || {
4450      __proto__: []
4451    } instanceof Array && function (d, b) {
4452      d.__proto__ = b;
4453    } || function (d, b) {
4454      for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
4455    };
4456    return extendStatics(d, b);
4457  };
4458  return function (d, b) {
4459    if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
4460    extendStatics(d, b);
4461    function __() {
4462      this.constructor = d;
4463    }
4464    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
4465  };
4466}();
4467var __importDefault = this && this.__importDefault || function (mod) {
4468  return mod && mod.__esModule ? mod : {
4469    "default": mod
4470  };
4471};
4472Object.defineProperty(exports, "__esModule", ({
4473  value: true
4474}));
4475var wrapped_element_1 = __importDefault(__nested_webpack_require_93875__(730));
4476var WrappedSelect = /** @class */function (_super) {
4477  __extends(WrappedSelect, _super);
4478  function WrappedSelect(_a) {
4479    var element = _a.element,
4480      classNames = _a.classNames,
4481      template = _a.template;
4482    var _this = _super.call(this, {
4483      element: element,
4484      classNames: classNames
4485    }) || this;
4486    _this.template = template;
4487    return _this;
4488  }
4489  Object.defineProperty(WrappedSelect.prototype, "placeholderOption", {
4490    get: function () {
4491      return this.element.querySelector('option[value=""]') ||
4492      // Backward compatibility layer for the non-standard placeholder attribute supported in older versions.
4493      this.element.querySelector('option[placeholder]');
4494    },
4495    enumerable: false,
4496    configurable: true
4497  });
4498  Object.defineProperty(WrappedSelect.prototype, "optionGroups", {
4499    get: function () {
4500      return Array.from(this.element.getElementsByTagName('OPTGROUP'));
4501    },
4502    enumerable: false,
4503    configurable: true
4504  });
4505  Object.defineProperty(WrappedSelect.prototype, "options", {
4506    get: function () {
4507      return Array.from(this.element.options);
4508    },
4509    set: function (options) {
4510      var _this = this;
4511      var fragment = document.createDocumentFragment();
4512      var addOptionToFragment = function (data) {
4513        // Create a standard select option
4514        var option = _this.template(data);
4515        // Append it to fragment
4516        fragment.appendChild(option);
4517      };
4518      // Add each list item to list
4519      options.forEach(function (optionData) {
4520        return addOptionToFragment(optionData);
4521      });
4522      this.appendDocFragment(fragment);
4523    },
4524    enumerable: false,
4525    configurable: true
4526  });
4527  WrappedSelect.prototype.appendDocFragment = function (fragment) {
4528    this.element.innerHTML = '';
4529    this.element.appendChild(fragment);
4530  };
4531  return WrappedSelect;
4532}(wrapped_element_1.default);
4533exports["default"] = WrappedSelect;
4534
4535/***/ }),
4536
4537/***/ 883:
4538/***/ (function(__unused_webpack_module, exports) {
4539
4540
4541
4542Object.defineProperty(exports, "__esModule", ({
4543  value: true
4544}));
4545exports.SCROLLING_SPEED = exports.SELECT_MULTIPLE_TYPE = exports.SELECT_ONE_TYPE = exports.TEXT_TYPE = exports.KEY_CODES = exports.ACTION_TYPES = exports.EVENTS = void 0;
4546exports.EVENTS = {
4547  showDropdown: 'showDropdown',
4548  hideDropdown: 'hideDropdown',
4549  change: 'change',
4550  choice: 'choice',
4551  search: 'search',
4552  addItem: 'addItem',
4553  removeItem: 'removeItem',
4554  highlightItem: 'highlightItem',
4555  highlightChoice: 'highlightChoice',
4556  unhighlightItem: 'unhighlightItem'
4557};
4558exports.ACTION_TYPES = {
4559  ADD_CHOICE: 'ADD_CHOICE',
4560  FILTER_CHOICES: 'FILTER_CHOICES',
4561  ACTIVATE_CHOICES: 'ACTIVATE_CHOICES',
4562  CLEAR_CHOICES: 'CLEAR_CHOICES',
4563  ADD_GROUP: 'ADD_GROUP',
4564  ADD_ITEM: 'ADD_ITEM',
4565  REMOVE_ITEM: 'REMOVE_ITEM',
4566  HIGHLIGHT_ITEM: 'HIGHLIGHT_ITEM',
4567  CLEAR_ALL: 'CLEAR_ALL',
4568  RESET_TO: 'RESET_TO',
4569  SET_IS_LOADING: 'SET_IS_LOADING'
4570};
4571exports.KEY_CODES = {
4572  BACK_KEY: 46,
4573  DELETE_KEY: 8,
4574  ENTER_KEY: 13,
4575  A_KEY: 65,
4576  ESC_KEY: 27,
4577  UP_KEY: 38,
4578  DOWN_KEY: 40,
4579  PAGE_UP_KEY: 33,
4580  PAGE_DOWN_KEY: 34
4581};
4582exports.TEXT_TYPE = 'text';
4583exports.SELECT_ONE_TYPE = 'select-one';
4584exports.SELECT_MULTIPLE_TYPE = 'select-multiple';
4585exports.SCROLLING_SPEED = 4;
4586
4587/***/ }),
4588
4589/***/ 789:
4590/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_98200__) {
4591
4592
4593
4594Object.defineProperty(exports, "__esModule", ({
4595  value: true
4596}));
4597exports.DEFAULT_CONFIG = exports.DEFAULT_CLASSNAMES = void 0;
4598var utils_1 = __nested_webpack_require_98200__(799);
4599exports.DEFAULT_CLASSNAMES = {
4600  containerOuter: 'choices',
4601  containerInner: 'choices__inner',
4602  input: 'choices__input',
4603  inputCloned: 'choices__input--cloned',
4604  list: 'choices__list',
4605  listItems: 'choices__list--multiple',
4606  listSingle: 'choices__list--single',
4607  listDropdown: 'choices__list--dropdown',
4608  item: 'choices__item',
4609  itemSelectable: 'choices__item--selectable',
4610  itemDisabled: 'choices__item--disabled',
4611  itemChoice: 'choices__item--choice',
4612  placeholder: 'choices__placeholder',
4613  group: 'choices__group',
4614  groupHeading: 'choices__heading',
4615  button: 'choices__button',
4616  activeState: 'is-active',
4617  focusState: 'is-focused',
4618  openState: 'is-open',
4619  disabledState: 'is-disabled',
4620  highlightedState: 'is-highlighted',
4621  selectedState: 'is-selected',
4622  flippedState: 'is-flipped',
4623  loadingState: 'is-loading',
4624  noResults: 'has-no-results',
4625  noChoices: 'has-no-choices'
4626};
4627exports.DEFAULT_CONFIG = {
4628  items: [],
4629  choices: [],
4630  silent: false,
4631  renderChoiceLimit: -1,
4632  maxItemCount: -1,
4633  addItems: true,
4634  addItemFilter: null,
4635  removeItems: true,
4636  removeItemButton: false,
4637  editItems: false,
4638  allowHTML: true,
4639  duplicateItemsAllowed: true,
4640  delimiter: ',',
4641  paste: true,
4642  searchEnabled: true,
4643  searchChoices: true,
4644  searchFloor: 1,
4645  searchResultLimit: 4,
4646  searchFields: ['label', 'value'],
4647  position: 'auto',
4648  resetScrollPosition: true,
4649  shouldSort: true,
4650  shouldSortItems: false,
4651  sorter: utils_1.sortByAlpha,
4652  placeholder: true,
4653  placeholderValue: null,
4654  searchPlaceholderValue: null,
4655  prependValue: null,
4656  appendValue: null,
4657  renderSelectedChoices: 'auto',
4658  loadingText: 'Loading...',
4659  noResultsText: 'No results found',
4660  noChoicesText: 'No choices to choose from',
4661  itemSelectText: 'Press to select',
4662  uniqueItemText: 'Only unique values can be added',
4663  customAddItemText: 'Only values matching specific conditions can be added',
4664  addItemText: function (value) {
4665    return "Press Enter to add <b>\"".concat((0, utils_1.sanitise)(value), "\"</b>");
4666  },
4667  maxItemText: function (maxItemCount) {
4668    return "Only ".concat(maxItemCount, " values can be added");
4669  },
4670  valueComparer: function (value1, value2) {
4671    return value1 === value2;
4672  },
4673  fuseOptions: {
4674    includeScore: true
4675  },
4676  labelId: '',
4677  callbackOnInit: null,
4678  callbackOnCreateTemplates: null,
4679  classNames: exports.DEFAULT_CLASSNAMES
4680};
4681
4682/***/ }),
4683
4684/***/ 18:
4685/***/ (function(__unused_webpack_module, exports) {
4686
4687
4688
4689Object.defineProperty(exports, "__esModule", ({
4690  value: true
4691}));
4692
4693/***/ }),
4694
4695/***/ 978:
4696/***/ (function(__unused_webpack_module, exports) {
4697
4698
4699
4700/* eslint-disable @typescript-eslint/no-explicit-any */
4701Object.defineProperty(exports, "__esModule", ({
4702  value: true
4703}));
4704
4705/***/ }),
4706
4707/***/ 948:
4708/***/ (function(__unused_webpack_module, exports) {
4709
4710
4711
4712Object.defineProperty(exports, "__esModule", ({
4713  value: true
4714}));
4715
4716/***/ }),
4717
4718/***/ 359:
4719/***/ (function(__unused_webpack_module, exports) {
4720
4721
4722
4723Object.defineProperty(exports, "__esModule", ({
4724  value: true
4725}));
4726
4727/***/ }),
4728
4729/***/ 285:
4730/***/ (function(__unused_webpack_module, exports) {
4731
4732
4733
4734Object.defineProperty(exports, "__esModule", ({
4735  value: true
4736}));
4737
4738/***/ }),
4739
4740/***/ 533:
4741/***/ (function(__unused_webpack_module, exports) {
4742
4743
4744
4745/* eslint-disable @typescript-eslint/no-explicit-any */
4746Object.defineProperty(exports, "__esModule", ({
4747  value: true
4748}));
4749
4750/***/ }),
4751
4752/***/ 187:
4753/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_101824__) {
4754
4755
4756
4757var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {
4758  if (k2 === undefined) k2 = k;
4759  var desc = Object.getOwnPropertyDescriptor(m, k);
4760  if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
4761    desc = {
4762      enumerable: true,
4763      get: function () {
4764        return m[k];
4765      }
4766    };
4767  }
4768  Object.defineProperty(o, k2, desc);
4769} : function (o, m, k, k2) {
4770  if (k2 === undefined) k2 = k;
4771  o[k2] = m[k];
4772});
4773var __exportStar = this && this.__exportStar || function (m, exports) {
4774  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
4775};
4776Object.defineProperty(exports, "__esModule", ({
4777  value: true
4778}));
4779__exportStar(__nested_webpack_require_101824__(18), exports);
4780__exportStar(__nested_webpack_require_101824__(978), exports);
4781__exportStar(__nested_webpack_require_101824__(948), exports);
4782__exportStar(__nested_webpack_require_101824__(359), exports);
4783__exportStar(__nested_webpack_require_101824__(285), exports);
4784__exportStar(__nested_webpack_require_101824__(533), exports);
4785__exportStar(__nested_webpack_require_101824__(287), exports);
4786__exportStar(__nested_webpack_require_101824__(132), exports);
4787__exportStar(__nested_webpack_require_101824__(837), exports);
4788__exportStar(__nested_webpack_require_101824__(598), exports);
4789__exportStar(__nested_webpack_require_101824__(369), exports);
4790__exportStar(__nested_webpack_require_101824__(37), exports);
4791__exportStar(__nested_webpack_require_101824__(47), exports);
4792__exportStar(__nested_webpack_require_101824__(923), exports);
4793__exportStar(__nested_webpack_require_101824__(876), exports);
4794
4795/***/ }),
4796
4797/***/ 287:
4798/***/ (function(__unused_webpack_module, exports) {
4799
4800
4801
4802Object.defineProperty(exports, "__esModule", ({
4803  value: true
4804}));
4805
4806/***/ }),
4807
4808/***/ 132:
4809/***/ (function(__unused_webpack_module, exports) {
4810
4811
4812
4813Object.defineProperty(exports, "__esModule", ({
4814  value: true
4815}));
4816
4817/***/ }),
4818
4819/***/ 837:
4820/***/ (function(__unused_webpack_module, exports) {
4821
4822
4823
4824Object.defineProperty(exports, "__esModule", ({
4825  value: true
4826}));
4827
4828/***/ }),
4829
4830/***/ 598:
4831/***/ (function(__unused_webpack_module, exports) {
4832
4833
4834
4835Object.defineProperty(exports, "__esModule", ({
4836  value: true
4837}));
4838
4839/***/ }),
4840
4841/***/ 37:
4842/***/ (function(__unused_webpack_module, exports) {
4843
4844
4845
4846Object.defineProperty(exports, "__esModule", ({
4847  value: true
4848}));
4849
4850/***/ }),
4851
4852/***/ 369:
4853/***/ (function(__unused_webpack_module, exports) {
4854
4855
4856
4857Object.defineProperty(exports, "__esModule", ({
4858  value: true
4859}));
4860
4861/***/ }),
4862
4863/***/ 47:
4864/***/ (function(__unused_webpack_module, exports) {
4865
4866
4867
4868Object.defineProperty(exports, "__esModule", ({
4869  value: true
4870}));
4871
4872/***/ }),
4873
4874/***/ 923:
4875/***/ (function(__unused_webpack_module, exports) {
4876
4877
4878
4879Object.defineProperty(exports, "__esModule", ({
4880  value: true
4881}));
4882
4883/***/ }),
4884
4885/***/ 876:
4886/***/ (function(__unused_webpack_module, exports) {
4887
4888
4889
4890Object.defineProperty(exports, "__esModule", ({
4891  value: true
4892}));
4893
4894/***/ }),
4895
4896/***/ 799:
4897/***/ (function(__unused_webpack_module, exports) {
4898
4899
4900
4901/* eslint-disable @typescript-eslint/no-explicit-any */
4902Object.defineProperty(exports, "__esModule", ({
4903  value: true
4904}));
4905exports.parseCustomProperties = exports.diff = exports.cloneObject = exports.existsInArray = exports.dispatchEvent = exports.sortByScore = exports.sortByAlpha = exports.strToEl = exports.sanitise = exports.isScrolledIntoView = exports.getAdjacentEl = exports.wrap = exports.isType = exports.getType = exports.generateId = exports.generateChars = exports.getRandomNumber = void 0;
4906var getRandomNumber = function (min, max) {
4907  return Math.floor(Math.random() * (max - min) + min);
4908};
4909exports.getRandomNumber = getRandomNumber;
4910var generateChars = function (length) {
4911  return Array.from({
4912    length: length
4913  }, function () {
4914    return (0, exports.getRandomNumber)(0, 36).toString(36);
4915  }).join('');
4916};
4917exports.generateChars = generateChars;
4918var generateId = function (element, prefix) {
4919  var id = element.id || element.name && "".concat(element.name, "-").concat((0, exports.generateChars)(2)) || (0, exports.generateChars)(4);
4920  id = id.replace(/(:|\.|\[|\]|,)/g, '');
4921  id = "".concat(prefix, "-").concat(id);
4922  return id;
4923};
4924exports.generateId = generateId;
4925var getType = function (obj) {
4926  return Object.prototype.toString.call(obj).slice(8, -1);
4927};
4928exports.getType = getType;
4929var isType = function (type, obj) {
4930  return obj !== undefined && obj !== null && (0, exports.getType)(obj) === type;
4931};
4932exports.isType = isType;
4933var wrap = function (element, wrapper) {
4934  if (wrapper === void 0) {
4935    wrapper = document.createElement('div');
4936  }
4937  if (element.parentNode) {
4938    if (element.nextSibling) {
4939      element.parentNode.insertBefore(wrapper, element.nextSibling);
4940    } else {
4941      element.parentNode.appendChild(wrapper);
4942    }
4943  }
4944  return wrapper.appendChild(element);
4945};
4946exports.wrap = wrap;
4947var getAdjacentEl = function (startEl, selector, direction) {
4948  if (direction === void 0) {
4949    direction = 1;
4950  }
4951  var prop = "".concat(direction > 0 ? 'next' : 'previous', "ElementSibling");
4952  var sibling = startEl[prop];
4953  while (sibling) {
4954    if (sibling.matches(selector)) {
4955      return sibling;
4956    }
4957    sibling = sibling[prop];
4958  }
4959  return sibling;
4960};
4961exports.getAdjacentEl = getAdjacentEl;
4962var isScrolledIntoView = function (element, parent, direction) {
4963  if (direction === void 0) {
4964    direction = 1;
4965  }
4966  if (!element) {
4967    return false;
4968  }
4969  var isVisible;
4970  if (direction > 0) {
4971    // In view from bottom
4972    isVisible = parent.scrollTop + parent.offsetHeight >= element.offsetTop + element.offsetHeight;
4973  } else {
4974    // In view from top
4975    isVisible = element.offsetTop >= parent.scrollTop;
4976  }
4977  return isVisible;
4978};
4979exports.isScrolledIntoView = isScrolledIntoView;
4980var sanitise = function (value) {
4981  if (typeof value !== 'string') {
4982    return value;
4983  }
4984  return value.replace(/&/g, '&amp;').replace(/>/g, '&gt;').replace(/</g, '&lt;').replace(/"/g, '&quot;');
4985};
4986exports.sanitise = sanitise;
4987exports.strToEl = function () {
4988  var tmpEl = document.createElement('div');
4989  return function (str) {
4990    var cleanedInput = str.trim();
4991    tmpEl.innerHTML = cleanedInput;
4992    var firldChild = tmpEl.children[0];
4993    while (tmpEl.firstChild) {
4994      tmpEl.removeChild(tmpEl.firstChild);
4995    }
4996    return firldChild;
4997  };
4998}();
4999var sortByAlpha = function (_a, _b) {
5000  var value = _a.value,
5001    _c = _a.label,
5002    label = _c === void 0 ? value : _c;
5003  var value2 = _b.value,
5004    _d = _b.label,
5005    label2 = _d === void 0 ? value2 : _d;
5006  return label.localeCompare(label2, [], {
5007    sensitivity: 'base',
5008    ignorePunctuation: true,
5009    numeric: true
5010  });
5011};
5012exports.sortByAlpha = sortByAlpha;
5013var sortByScore = function (a, b) {
5014  var _a = a.score,
5015    scoreA = _a === void 0 ? 0 : _a;
5016  var _b = b.score,
5017    scoreB = _b === void 0 ? 0 : _b;
5018  return scoreA - scoreB;
5019};
5020exports.sortByScore = sortByScore;
5021var dispatchEvent = function (element, type, customArgs) {
5022  if (customArgs === void 0) {
5023    customArgs = null;
5024  }
5025  var event = new CustomEvent(type, {
5026    detail: customArgs,
5027    bubbles: true,
5028    cancelable: true
5029  });
5030  return element.dispatchEvent(event);
5031};
5032exports.dispatchEvent = dispatchEvent;
5033var existsInArray = function (array, value, key) {
5034  if (key === void 0) {
5035    key = 'value';
5036  }
5037  return array.some(function (item) {
5038    if (typeof value === 'string') {
5039      return item[key] === value.trim();
5040    }
5041    return item[key] === value;
5042  });
5043};
5044exports.existsInArray = existsInArray;
5045var cloneObject = function (obj) {
5046  return JSON.parse(JSON.stringify(obj));
5047};
5048exports.cloneObject = cloneObject;
5049/**
5050 * Returns an array of keys present on the first but missing on the second object
5051 */
5052var diff = function (a, b) {
5053  var aKeys = Object.keys(a).sort();
5054  var bKeys = Object.keys(b).sort();
5055  return aKeys.filter(function (i) {
5056    return bKeys.indexOf(i) < 0;
5057  });
5058};
5059exports.diff = diff;
5060var parseCustomProperties = function (customProperties) {
5061  if (typeof customProperties !== 'undefined') {
5062    try {
5063      return JSON.parse(customProperties);
5064    } catch (e) {
5065      return customProperties;
5066    }
5067  }
5068  return {};
5069};
5070exports.parseCustomProperties = parseCustomProperties;
5071
5072/***/ }),
5073
5074/***/ 273:
5075/***/ (function(__unused_webpack_module, exports) {
5076
5077
5078
5079var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
5080  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
5081    if (ar || !(i in from)) {
5082      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
5083      ar[i] = from[i];
5084    }
5085  }
5086  return to.concat(ar || Array.prototype.slice.call(from));
5087};
5088Object.defineProperty(exports, "__esModule", ({
5089  value: true
5090}));
5091exports.defaultState = void 0;
5092exports.defaultState = [];
5093function choices(state, action) {
5094  if (state === void 0) {
5095    state = exports.defaultState;
5096  }
5097  if (action === void 0) {
5098    action = {};
5099  }
5100  switch (action.type) {
5101    case 'ADD_CHOICE':
5102      {
5103        var addChoiceAction = action;
5104        var choice = {
5105          id: addChoiceAction.id,
5106          elementId: addChoiceAction.elementId,
5107          groupId: addChoiceAction.groupId,
5108          value: addChoiceAction.value,
5109          label: addChoiceAction.label || addChoiceAction.value,
5110          disabled: addChoiceAction.disabled || false,
5111          selected: false,
5112          active: true,
5113          score: 9999,
5114          customProperties: addChoiceAction.customProperties,
5115          placeholder: addChoiceAction.placeholder || false
5116        };
5117        /*
5118          A disabled choice appears in the choice dropdown but cannot be selected
5119          A selected choice has been added to the passed input's value (added as an item)
5120          An active choice appears within the choice dropdown
5121        */
5122        return __spreadArray(__spreadArray([], state, true), [choice], false);
5123      }
5124    case 'ADD_ITEM':
5125      {
5126        var addItemAction_1 = action;
5127        // When an item is added and it has an associated choice,
5128        // we want to disable it so it can't be chosen again
5129        if (addItemAction_1.choiceId > -1) {
5130          return state.map(function (obj) {
5131            var choice = obj;
5132            if (choice.id === parseInt("".concat(addItemAction_1.choiceId), 10)) {
5133              choice.selected = true;
5134            }
5135            return choice;
5136          });
5137        }
5138        return state;
5139      }
5140    case 'REMOVE_ITEM':
5141      {
5142        var removeItemAction_1 = action;
5143        // When an item is removed and it has an associated choice,
5144        // we want to re-enable it so it can be chosen again
5145        if (removeItemAction_1.choiceId && removeItemAction_1.choiceId > -1) {
5146          return state.map(function (obj) {
5147            var choice = obj;
5148            if (choice.id === parseInt("".concat(removeItemAction_1.choiceId), 10)) {
5149              choice.selected = false;
5150            }
5151            return choice;
5152          });
5153        }
5154        return state;
5155      }
5156    case 'FILTER_CHOICES':
5157      {
5158        var filterChoicesAction_1 = action;
5159        return state.map(function (obj) {
5160          var choice = obj;
5161          // Set active state based on whether choice is
5162          // within filtered results
5163          choice.active = filterChoicesAction_1.results.some(function (_a) {
5164            var item = _a.item,
5165              score = _a.score;
5166            if (item.id === choice.id) {
5167              choice.score = score;
5168              return true;
5169            }
5170            return false;
5171          });
5172          return choice;
5173        });
5174      }
5175    case 'ACTIVATE_CHOICES':
5176      {
5177        var activateChoicesAction_1 = action;
5178        return state.map(function (obj) {
5179          var choice = obj;
5180          choice.active = activateChoicesAction_1.active;
5181          return choice;
5182        });
5183      }
5184    case 'CLEAR_CHOICES':
5185      {
5186        return exports.defaultState;
5187      }
5188    default:
5189      {
5190        return state;
5191      }
5192  }
5193}
5194exports["default"] = choices;
5195
5196/***/ }),
5197
5198/***/ 871:
5199/***/ (function(__unused_webpack_module, exports) {
5200
5201
5202
5203var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
5204  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
5205    if (ar || !(i in from)) {
5206      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
5207      ar[i] = from[i];
5208    }
5209  }
5210  return to.concat(ar || Array.prototype.slice.call(from));
5211};
5212Object.defineProperty(exports, "__esModule", ({
5213  value: true
5214}));
5215exports.defaultState = void 0;
5216exports.defaultState = [];
5217function groups(state, action) {
5218  if (state === void 0) {
5219    state = exports.defaultState;
5220  }
5221  if (action === void 0) {
5222    action = {};
5223  }
5224  switch (action.type) {
5225    case 'ADD_GROUP':
5226      {
5227        var addGroupAction = action;
5228        return __spreadArray(__spreadArray([], state, true), [{
5229          id: addGroupAction.id,
5230          value: addGroupAction.value,
5231          active: addGroupAction.active,
5232          disabled: addGroupAction.disabled
5233        }], false);
5234      }
5235    case 'CLEAR_CHOICES':
5236      {
5237        return [];
5238      }
5239    default:
5240      {
5241        return state;
5242      }
5243  }
5244}
5245exports["default"] = groups;
5246
5247/***/ }),
5248
5249/***/ 655:
5250/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_114916__) {
5251
5252
5253
5254var __importDefault = this && this.__importDefault || function (mod) {
5255  return mod && mod.__esModule ? mod : {
5256    "default": mod
5257  };
5258};
5259Object.defineProperty(exports, "__esModule", ({
5260  value: true
5261}));
5262exports.defaultState = void 0;
5263var redux_1 = __nested_webpack_require_114916__(791);
5264var items_1 = __importDefault(__nested_webpack_require_114916__(52));
5265var groups_1 = __importDefault(__nested_webpack_require_114916__(871));
5266var choices_1 = __importDefault(__nested_webpack_require_114916__(273));
5267var loading_1 = __importDefault(__nested_webpack_require_114916__(502));
5268var utils_1 = __nested_webpack_require_114916__(799);
5269exports.defaultState = {
5270  groups: [],
5271  items: [],
5272  choices: [],
5273  loading: false
5274};
5275var appReducer = (0, redux_1.combineReducers)({
5276  items: items_1.default,
5277  groups: groups_1.default,
5278  choices: choices_1.default,
5279  loading: loading_1.default
5280});
5281var rootReducer = function (passedState, action) {
5282  var state = passedState;
5283  // If we are clearing all items, groups and options we reassign
5284  // state and then pass that state to our proper reducer. This isn't
5285  // mutating our actual state
5286  // See: http://stackoverflow.com/a/35641992
5287  if (action.type === 'CLEAR_ALL') {
5288    state = exports.defaultState;
5289  } else if (action.type === 'RESET_TO') {
5290    return (0, utils_1.cloneObject)(action.state);
5291  }
5292  return appReducer(state, action);
5293};
5294exports["default"] = rootReducer;
5295
5296/***/ }),
5297
5298/***/ 52:
5299/***/ (function(__unused_webpack_module, exports) {
5300
5301
5302
5303var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
5304  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
5305    if (ar || !(i in from)) {
5306      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
5307      ar[i] = from[i];
5308    }
5309  }
5310  return to.concat(ar || Array.prototype.slice.call(from));
5311};
5312Object.defineProperty(exports, "__esModule", ({
5313  value: true
5314}));
5315exports.defaultState = void 0;
5316exports.defaultState = [];
5317function items(state, action) {
5318  if (state === void 0) {
5319    state = exports.defaultState;
5320  }
5321  if (action === void 0) {
5322    action = {};
5323  }
5324  switch (action.type) {
5325    case 'ADD_ITEM':
5326      {
5327        var addItemAction = action;
5328        // Add object to items array
5329        var newState = __spreadArray(__spreadArray([], state, true), [{
5330          id: addItemAction.id,
5331          choiceId: addItemAction.choiceId,
5332          groupId: addItemAction.groupId,
5333          value: addItemAction.value,
5334          label: addItemAction.label,
5335          active: true,
5336          highlighted: false,
5337          customProperties: addItemAction.customProperties,
5338          placeholder: addItemAction.placeholder || false,
5339          keyCode: null
5340        }], false);
5341        return newState.map(function (obj) {
5342          var item = obj;
5343          item.highlighted = false;
5344          return item;
5345        });
5346      }
5347    case 'REMOVE_ITEM':
5348      {
5349        // Set item to inactive
5350        return state.map(function (obj) {
5351          var item = obj;
5352          if (item.id === action.id) {
5353            item.active = false;
5354          }
5355          return item;
5356        });
5357      }
5358    case 'HIGHLIGHT_ITEM':
5359      {
5360        var highlightItemAction_1 = action;
5361        return state.map(function (obj) {
5362          var item = obj;
5363          if (item.id === highlightItemAction_1.id) {
5364            item.highlighted = highlightItemAction_1.highlighted;
5365          }
5366          return item;
5367        });
5368      }
5369    default:
5370      {
5371        return state;
5372      }
5373  }
5374}
5375exports["default"] = items;
5376
5377/***/ }),
5378
5379/***/ 502:
5380/***/ (function(__unused_webpack_module, exports) {
5381
5382
5383
5384Object.defineProperty(exports, "__esModule", ({
5385  value: true
5386}));
5387exports.defaultState = void 0;
5388exports.defaultState = false;
5389var general = function (state, action) {
5390  if (state === void 0) {
5391    state = exports.defaultState;
5392  }
5393  if (action === void 0) {
5394    action = {};
5395  }
5396  switch (action.type) {
5397    case 'SET_IS_LOADING':
5398      {
5399        return action.isLoading;
5400      }
5401    default:
5402      {
5403        return state;
5404      }
5405  }
5406};
5407exports["default"] = general;
5408
5409/***/ }),
5410
5411/***/ 744:
5412/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_119022__) {
5413
5414
5415
5416var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
5417  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
5418    if (ar || !(i in from)) {
5419      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
5420      ar[i] = from[i];
5421    }
5422  }
5423  return to.concat(ar || Array.prototype.slice.call(from));
5424};
5425var __importDefault = this && this.__importDefault || function (mod) {
5426  return mod && mod.__esModule ? mod : {
5427    "default": mod
5428  };
5429};
5430Object.defineProperty(exports, "__esModule", ({
5431  value: true
5432}));
5433/* eslint-disable @typescript-eslint/no-explicit-any */
5434var redux_1 = __nested_webpack_require_119022__(791);
5435var index_1 = __importDefault(__nested_webpack_require_119022__(655));
5436var Store = /** @class */function () {
5437  function Store() {
5438    this._store = (0, redux_1.createStore)(index_1.default, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());
5439  }
5440  /**
5441   * Subscribe store to function call (wrapped Redux method)
5442   */
5443  Store.prototype.subscribe = function (onChange) {
5444    this._store.subscribe(onChange);
5445  };
5446  /**
5447   * Dispatch event to store (wrapped Redux method)
5448   */
5449  Store.prototype.dispatch = function (action) {
5450    this._store.dispatch(action);
5451  };
5452  Object.defineProperty(Store.prototype, "state", {
5453    /**
5454     * Get store object (wrapping Redux method)
5455     */
5456    get: function () {
5457      return this._store.getState();
5458    },
5459    enumerable: false,
5460    configurable: true
5461  });
5462  Object.defineProperty(Store.prototype, "items", {
5463    /**
5464     * Get items from store
5465     */
5466    get: function () {
5467      return this.state.items;
5468    },
5469    enumerable: false,
5470    configurable: true
5471  });
5472  Object.defineProperty(Store.prototype, "activeItems", {
5473    /**
5474     * Get active items from store
5475     */
5476    get: function () {
5477      return this.items.filter(function (item) {
5478        return item.active === true;
5479      });
5480    },
5481    enumerable: false,
5482    configurable: true
5483  });
5484  Object.defineProperty(Store.prototype, "highlightedActiveItems", {
5485    /**
5486     * Get highlighted items from store
5487     */
5488    get: function () {
5489      return this.items.filter(function (item) {
5490        return item.active && item.highlighted;
5491      });
5492    },
5493    enumerable: false,
5494    configurable: true
5495  });
5496  Object.defineProperty(Store.prototype, "choices", {
5497    /**
5498     * Get choices from store
5499     */
5500    get: function () {
5501      return this.state.choices;
5502    },
5503    enumerable: false,
5504    configurable: true
5505  });
5506  Object.defineProperty(Store.prototype, "activeChoices", {
5507    /**
5508     * Get active choices from store
5509     */
5510    get: function () {
5511      return this.choices.filter(function (choice) {
5512        return choice.active === true;
5513      });
5514    },
5515    enumerable: false,
5516    configurable: true
5517  });
5518  Object.defineProperty(Store.prototype, "selectableChoices", {
5519    /**
5520     * Get selectable choices from store
5521     */
5522    get: function () {
5523      return this.choices.filter(function (choice) {
5524        return choice.disabled !== true;
5525      });
5526    },
5527    enumerable: false,
5528    configurable: true
5529  });
5530  Object.defineProperty(Store.prototype, "searchableChoices", {
5531    /**
5532     * Get choices that can be searched (excluding placeholders)
5533     */
5534    get: function () {
5535      return this.selectableChoices.filter(function (choice) {
5536        return choice.placeholder !== true;
5537      });
5538    },
5539    enumerable: false,
5540    configurable: true
5541  });
5542  Object.defineProperty(Store.prototype, "placeholderChoice", {
5543    /**
5544     * Get placeholder choice from store
5545     */
5546    get: function () {
5547      return __spreadArray([], this.choices, true).reverse().find(function (choice) {
5548        return choice.placeholder === true;
5549      });
5550    },
5551    enumerable: false,
5552    configurable: true
5553  });
5554  Object.defineProperty(Store.prototype, "groups", {
5555    /**
5556     * Get groups from store
5557     */
5558    get: function () {
5559      return this.state.groups;
5560    },
5561    enumerable: false,
5562    configurable: true
5563  });
5564  Object.defineProperty(Store.prototype, "activeGroups", {
5565    /**
5566     * Get active groups from store
5567     */
5568    get: function () {
5569      var _a = this,
5570        groups = _a.groups,
5571        choices = _a.choices;
5572      return groups.filter(function (group) {
5573        var isActive = group.active === true && group.disabled === false;
5574        var hasActiveOptions = choices.some(function (choice) {
5575          return choice.active === true && choice.disabled === false;
5576        });
5577        return isActive && hasActiveOptions;
5578      }, []);
5579    },
5580    enumerable: false,
5581    configurable: true
5582  });
5583  /**
5584   * Get loading state from store
5585   */
5586  Store.prototype.isLoading = function () {
5587    return this.state.loading;
5588  };
5589  /**
5590   * Get single choice by it's ID
5591   */
5592  Store.prototype.getChoiceById = function (id) {
5593    return this.activeChoices.find(function (choice) {
5594      return choice.id === parseInt(id, 10);
5595    });
5596  };
5597  /**
5598   * Get group by group id
5599   */
5600  Store.prototype.getGroupById = function (id) {
5601    return this.groups.find(function (group) {
5602      return group.id === id;
5603    });
5604  };
5605  return Store;
5606}();
5607exports["default"] = Store;
5608
5609/***/ }),
5610
5611/***/ 686:
5612/***/ (function(__unused_webpack_module, exports) {
5613
5614
5615
5616/**
5617 * Helpers to create HTML elements used by Choices
5618 * Can be overridden by providing `callbackOnCreateTemplates` option
5619 */
5620Object.defineProperty(exports, "__esModule", ({
5621  value: true
5622}));
5623var templates = {
5624  containerOuter: function (_a, dir, isSelectElement, isSelectOneElement, searchEnabled, passedElementType, labelId) {
5625    var containerOuter = _a.classNames.containerOuter;
5626    var div = Object.assign(document.createElement('div'), {
5627      className: containerOuter
5628    });
5629    div.dataset.type = passedElementType;
5630    if (dir) {
5631      div.dir = dir;
5632    }
5633    if (isSelectOneElement) {
5634      div.tabIndex = 0;
5635    }
5636    if (isSelectElement) {
5637      div.setAttribute('role', searchEnabled ? 'combobox' : 'listbox');
5638      if (searchEnabled) {
5639        div.setAttribute('aria-autocomplete', 'list');
5640      }
5641    }
5642    div.setAttribute('aria-haspopup', 'true');
5643    div.setAttribute('aria-expanded', 'false');
5644    if (labelId) {
5645      div.setAttribute('aria-labelledby', labelId);
5646    }
5647    return div;
5648  },
5649  containerInner: function (_a) {
5650    var containerInner = _a.classNames.containerInner;
5651    return Object.assign(document.createElement('div'), {
5652      className: containerInner
5653    });
5654  },
5655  itemList: function (_a, isSelectOneElement) {
5656    var _b = _a.classNames,
5657      list = _b.list,
5658      listSingle = _b.listSingle,
5659      listItems = _b.listItems;
5660    return Object.assign(document.createElement('div'), {
5661      className: "".concat(list, " ").concat(isSelectOneElement ? listSingle : listItems)
5662    });
5663  },
5664  placeholder: function (_a, value) {
5665    var _b;
5666    var allowHTML = _a.allowHTML,
5667      placeholder = _a.classNames.placeholder;
5668    return Object.assign(document.createElement('div'), (_b = {
5669      className: placeholder
5670    }, _b[allowHTML ? 'innerHTML' : 'innerText'] = value, _b));
5671  },
5672  item: function (_a, _b, removeItemButton) {
5673    var _c, _d;
5674    var allowHTML = _a.allowHTML,
5675      _e = _a.classNames,
5676      item = _e.item,
5677      button = _e.button,
5678      highlightedState = _e.highlightedState,
5679      itemSelectable = _e.itemSelectable,
5680      placeholder = _e.placeholder;
5681    var id = _b.id,
5682      value = _b.value,
5683      label = _b.label,
5684      customProperties = _b.customProperties,
5685      active = _b.active,
5686      disabled = _b.disabled,
5687      highlighted = _b.highlighted,
5688      isPlaceholder = _b.placeholder;
5689    var div = Object.assign(document.createElement('div'), (_c = {
5690      className: item
5691    }, _c[allowHTML ? 'innerHTML' : 'innerText'] = label, _c));
5692    Object.assign(div.dataset, {
5693      item: '',
5694      id: id,
5695      value: value,
5696      customProperties: customProperties
5697    });
5698    if (active) {
5699      div.setAttribute('aria-selected', 'true');
5700    }
5701    if (disabled) {
5702      div.setAttribute('aria-disabled', 'true');
5703    }
5704    if (isPlaceholder) {
5705      div.classList.add(placeholder);
5706    }
5707    div.classList.add(highlighted ? highlightedState : itemSelectable);
5708    if (removeItemButton) {
5709      if (disabled) {
5710        div.classList.remove(itemSelectable);
5711      }
5712      div.dataset.deletable = '';
5713      /** @todo This MUST be localizable, not hardcoded! */
5714      var REMOVE_ITEM_TEXT = 'Remove item';
5715      var removeButton = Object.assign(document.createElement('button'), (_d = {
5716        type: 'button',
5717        className: button
5718      }, _d[allowHTML ? 'innerHTML' : 'innerText'] = REMOVE_ITEM_TEXT, _d));
5719      removeButton.setAttribute('aria-label', "".concat(REMOVE_ITEM_TEXT, ": '").concat(value, "'"));
5720      removeButton.dataset.button = '';
5721      div.appendChild(removeButton);
5722    }
5723    return div;
5724  },
5725  choiceList: function (_a, isSelectOneElement) {
5726    var list = _a.classNames.list;
5727    var div = Object.assign(document.createElement('div'), {
5728      className: list
5729    });
5730    if (!isSelectOneElement) {
5731      div.setAttribute('aria-multiselectable', 'true');
5732    }
5733    div.setAttribute('role', 'listbox');
5734    return div;
5735  },
5736  choiceGroup: function (_a, _b) {
5737    var _c;
5738    var allowHTML = _a.allowHTML,
5739      _d = _a.classNames,
5740      group = _d.group,
5741      groupHeading = _d.groupHeading,
5742      itemDisabled = _d.itemDisabled;
5743    var id = _b.id,
5744      value = _b.value,
5745      disabled = _b.disabled;
5746    var div = Object.assign(document.createElement('div'), {
5747      className: "".concat(group, " ").concat(disabled ? itemDisabled : '')
5748    });
5749    div.setAttribute('role', 'group');
5750    Object.assign(div.dataset, {
5751      group: '',
5752      id: id,
5753      value: value
5754    });
5755    if (disabled) {
5756      div.setAttribute('aria-disabled', 'true');
5757    }
5758    div.appendChild(Object.assign(document.createElement('div'), (_c = {
5759      className: groupHeading
5760    }, _c[allowHTML ? 'innerHTML' : 'innerText'] = value, _c)));
5761    return div;
5762  },
5763  choice: function (_a, _b, selectText) {
5764    var _c;
5765    var allowHTML = _a.allowHTML,
5766      _d = _a.classNames,
5767      item = _d.item,
5768      itemChoice = _d.itemChoice,
5769      itemSelectable = _d.itemSelectable,
5770      selectedState = _d.selectedState,
5771      itemDisabled = _d.itemDisabled,
5772      placeholder = _d.placeholder;
5773    var id = _b.id,
5774      value = _b.value,
5775      label = _b.label,
5776      groupId = _b.groupId,
5777      elementId = _b.elementId,
5778      isDisabled = _b.disabled,
5779      isSelected = _b.selected,
5780      isPlaceholder = _b.placeholder;
5781    var div = Object.assign(document.createElement('div'), (_c = {
5782      id: elementId
5783    }, _c[allowHTML ? 'innerHTML' : 'innerText'] = label, _c.className = "".concat(item, " ").concat(itemChoice), _c));
5784    if (isSelected) {
5785      div.classList.add(selectedState);
5786    }
5787    if (isPlaceholder) {
5788      div.classList.add(placeholder);
5789    }
5790    div.setAttribute('role', groupId && groupId > 0 ? 'treeitem' : 'option');
5791    Object.assign(div.dataset, {
5792      choice: '',
5793      id: id,
5794      value: value,
5795      selectText: selectText
5796    });
5797    if (isDisabled) {
5798      div.classList.add(itemDisabled);
5799      div.dataset.choiceDisabled = '';
5800      div.setAttribute('aria-disabled', 'true');
5801    } else {
5802      div.classList.add(itemSelectable);
5803      div.dataset.choiceSelectable = '';
5804    }
5805    return div;
5806  },
5807  input: function (_a, placeholderValue) {
5808    var _b = _a.classNames,
5809      input = _b.input,
5810      inputCloned = _b.inputCloned;
5811    var inp = Object.assign(document.createElement('input'), {
5812      type: 'search',
5813      name: 'search_terms',
5814      className: "".concat(input, " ").concat(inputCloned),
5815      autocomplete: 'off',
5816      autocapitalize: 'off',
5817      spellcheck: false
5818    });
5819    inp.setAttribute('role', 'textbox');
5820    inp.setAttribute('aria-autocomplete', 'list');
5821    inp.setAttribute('aria-label', placeholderValue);
5822    return inp;
5823  },
5824  dropdown: function (_a) {
5825    var _b = _a.classNames,
5826      list = _b.list,
5827      listDropdown = _b.listDropdown;
5828    var div = document.createElement('div');
5829    div.classList.add(list, listDropdown);
5830    div.setAttribute('aria-expanded', 'false');
5831    return div;
5832  },
5833  notice: function (_a, innerText, type) {
5834    var _b;
5835    var allowHTML = _a.allowHTML,
5836      _c = _a.classNames,
5837      item = _c.item,
5838      itemChoice = _c.itemChoice,
5839      noResults = _c.noResults,
5840      noChoices = _c.noChoices;
5841    if (type === void 0) {
5842      type = '';
5843    }
5844    var classes = [item, itemChoice];
5845    if (type === 'no-choices') {
5846      classes.push(noChoices);
5847    } else if (type === 'no-results') {
5848      classes.push(noResults);
5849    }
5850    return Object.assign(document.createElement('div'), (_b = {}, _b[allowHTML ? 'innerHTML' : 'innerText'] = innerText, _b.className = classes.join(' '), _b));
5851  },
5852  option: function (_a) {
5853    var label = _a.label,
5854      value = _a.value,
5855      customProperties = _a.customProperties,
5856      active = _a.active,
5857      disabled = _a.disabled;
5858    var opt = new Option(label, value, false, active);
5859    if (customProperties) {
5860      opt.dataset.customProperties = "".concat(customProperties);
5861    }
5862    opt.disabled = !!disabled;
5863    return opt;
5864  }
5865};
5866exports["default"] = templates;
5867
5868/***/ }),
5869
5870/***/ 996:
5871/***/ (function(module) {
5872
5873
5874
5875var isMergeableObject = function isMergeableObject(value) {
5876	return isNonNullObject(value)
5877		&& !isSpecial(value)
5878};
5879
5880function isNonNullObject(value) {
5881	return !!value && typeof value === 'object'
5882}
5883
5884function isSpecial(value) {
5885	var stringValue = Object.prototype.toString.call(value);
5886
5887	return stringValue === '[object RegExp]'
5888		|| stringValue === '[object Date]'
5889		|| isReactElement(value)
5890}
5891
5892// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25
5893var canUseSymbol = typeof Symbol === 'function' && Symbol.for;
5894var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;
5895
5896function isReactElement(value) {
5897	return value.$$typeof === REACT_ELEMENT_TYPE
5898}
5899
5900function emptyTarget(val) {
5901	return Array.isArray(val) ? [] : {}
5902}
5903
5904function cloneUnlessOtherwiseSpecified(value, options) {
5905	return (options.clone !== false && options.isMergeableObject(value))
5906		? deepmerge(emptyTarget(value), value, options)
5907		: value
5908}
5909
5910function defaultArrayMerge(target, source, options) {
5911	return target.concat(source).map(function(element) {
5912		return cloneUnlessOtherwiseSpecified(element, options)
5913	})
5914}
5915
5916function getMergeFunction(key, options) {
5917	if (!options.customMerge) {
5918		return deepmerge
5919	}
5920	var customMerge = options.customMerge(key);
5921	return typeof customMerge === 'function' ? customMerge : deepmerge
5922}
5923
5924function getEnumerableOwnPropertySymbols(target) {
5925	return Object.getOwnPropertySymbols
5926		? Object.getOwnPropertySymbols(target).filter(function(symbol) {
5927			return target.propertyIsEnumerable(symbol)
5928		})
5929		: []
5930}
5931
5932function getKeys(target) {
5933	return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))
5934}
5935
5936function propertyIsOnObject(object, property) {
5937	try {
5938		return property in object
5939	} catch(_) {
5940		return false
5941	}
5942}
5943
5944// Protects from prototype poisoning and unexpected merging up the prototype chain.
5945function propertyIsUnsafe(target, key) {
5946	return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,
5947		&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,
5948			&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.
5949}
5950
5951function mergeObject(target, source, options) {
5952	var destination = {};
5953	if (options.isMergeableObject(target)) {
5954		getKeys(target).forEach(function(key) {
5955			destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);
5956		});
5957	}
5958	getKeys(source).forEach(function(key) {
5959		if (propertyIsUnsafe(target, key)) {
5960			return
5961		}
5962
5963		if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {
5964			destination[key] = getMergeFunction(key, options)(target[key], source[key], options);
5965		} else {
5966			destination[key] = cloneUnlessOtherwiseSpecified(source[key], options);
5967		}
5968	});
5969	return destination
5970}
5971
5972function deepmerge(target, source, options) {
5973	options = options || {};
5974	options.arrayMerge = options.arrayMerge || defaultArrayMerge;
5975	options.isMergeableObject = options.isMergeableObject || isMergeableObject;
5976	// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()
5977	// implementations can use it. The caller may not replace it.
5978	options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;
5979
5980	var sourceIsArray = Array.isArray(source);
5981	var targetIsArray = Array.isArray(target);
5982	var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;
5983
5984	if (!sourceAndTargetTypesMatch) {
5985		return cloneUnlessOtherwiseSpecified(source, options)
5986	} else if (sourceIsArray) {
5987		return options.arrayMerge(target, source, options)
5988	} else {
5989		return mergeObject(target, source, options)
5990	}
5991}
5992
5993deepmerge.all = function deepmergeAll(array, options) {
5994	if (!Array.isArray(array)) {
5995		throw new Error('first argument should be an array')
5996	}
5997
5998	return array.reduce(function(prev, next) {
5999		return deepmerge(prev, next, options)
6000	}, {})
6001};
6002
6003var deepmerge_1 = deepmerge;
6004
6005module.exports = deepmerge_1;
6006
6007
6008/***/ }),
6009
6010/***/ 221:
6011/***/ (function(__unused_webpack_module, __webpack_exports__, __nested_webpack_require_136441__) {
6012
6013__nested_webpack_require_136441__.r(__webpack_exports__);
6014/* harmony export */ __nested_webpack_require_136441__.d(__webpack_exports__, {
6015/* harmony export */   "default": function() { return /* binding */ Fuse; }
6016/* harmony export */ });
6017/**
6018 * Fuse.js v6.6.2 - Lightweight fuzzy-search (http://fusejs.io)
6019 *
6020 * Copyright (c) 2022 Kiro Risk (http://kiro.me)
6021 * All Rights Reserved. Apache Software License 2.0
6022 *
6023 * http://www.apache.org/licenses/LICENSE-2.0
6024 */
6025
6026function isArray(value) {
6027  return !Array.isArray
6028    ? getTag(value) === '[object Array]'
6029    : Array.isArray(value)
6030}
6031
6032// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/baseToString.js
6033const INFINITY = 1 / 0;
6034function baseToString(value) {
6035  // Exit early for strings to avoid a performance hit in some environments.
6036  if (typeof value == 'string') {
6037    return value
6038  }
6039  let result = value + '';
6040  return result == '0' && 1 / value == -INFINITY ? '-0' : result
6041}
6042
6043function toString(value) {
6044  return value == null ? '' : baseToString(value)
6045}
6046
6047function isString(value) {
6048  return typeof value === 'string'
6049}
6050
6051function isNumber(value) {
6052  return typeof value === 'number'
6053}
6054
6055// Adapted from: https://github.com/lodash/lodash/blob/master/isBoolean.js
6056function isBoolean(value) {
6057  return (
6058    value === true ||
6059    value === false ||
6060    (isObjectLike(value) && getTag(value) == '[object Boolean]')
6061  )
6062}
6063
6064function isObject(value) {
6065  return typeof value === 'object'
6066}
6067
6068// Checks if `value` is object-like.
6069function isObjectLike(value) {
6070  return isObject(value) && value !== null
6071}
6072
6073function isDefined(value) {
6074  return value !== undefined && value !== null
6075}
6076
6077function isBlank(value) {
6078  return !value.trim().length
6079}
6080
6081// Gets the `toStringTag` of `value`.
6082// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/getTag.js
6083function getTag(value) {
6084  return value == null
6085    ? value === undefined
6086      ? '[object Undefined]'
6087      : '[object Null]'
6088    : Object.prototype.toString.call(value)
6089}
6090
6091const EXTENDED_SEARCH_UNAVAILABLE = 'Extended search is not available';
6092
6093const INCORRECT_INDEX_TYPE = "Incorrect 'index' type";
6094
6095const LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY = (key) =>
6096  `Invalid value for key ${key}`;
6097
6098const PATTERN_LENGTH_TOO_LARGE = (max) =>
6099  `Pattern length exceeds max of ${max}.`;
6100
6101const MISSING_KEY_PROPERTY = (name) => `Missing ${name} property in key`;
6102
6103const INVALID_KEY_WEIGHT_VALUE = (key) =>
6104  `Property 'weight' in key '${key}' must be a positive integer`;
6105
6106const hasOwn = Object.prototype.hasOwnProperty;
6107
6108class KeyStore {
6109  constructor(keys) {
6110    this._keys = [];
6111    this._keyMap = {};
6112
6113    let totalWeight = 0;
6114
6115    keys.forEach((key) => {
6116      let obj = createKey(key);
6117
6118      totalWeight += obj.weight;
6119
6120      this._keys.push(obj);
6121      this._keyMap[obj.id] = obj;
6122
6123      totalWeight += obj.weight;
6124    });
6125
6126    // Normalize weights so that their sum is equal to 1
6127    this._keys.forEach((key) => {
6128      key.weight /= totalWeight;
6129    });
6130  }
6131  get(keyId) {
6132    return this._keyMap[keyId]
6133  }
6134  keys() {
6135    return this._keys
6136  }
6137  toJSON() {
6138    return JSON.stringify(this._keys)
6139  }
6140}
6141
6142function createKey(key) {
6143  let path = null;
6144  let id = null;
6145  let src = null;
6146  let weight = 1;
6147  let getFn = null;
6148
6149  if (isString(key) || isArray(key)) {
6150    src = key;
6151    path = createKeyPath(key);
6152    id = createKeyId(key);
6153  } else {
6154    if (!hasOwn.call(key, 'name')) {
6155      throw new Error(MISSING_KEY_PROPERTY('name'))
6156    }
6157
6158    const name = key.name;
6159    src = name;
6160
6161    if (hasOwn.call(key, 'weight')) {
6162      weight = key.weight;
6163
6164      if (weight <= 0) {
6165        throw new Error(INVALID_KEY_WEIGHT_VALUE(name))
6166      }
6167    }
6168
6169    path = createKeyPath(name);
6170    id = createKeyId(name);
6171    getFn = key.getFn;
6172  }
6173
6174  return { path, id, weight, src, getFn }
6175}
6176
6177function createKeyPath(key) {
6178  return isArray(key) ? key : key.split('.')
6179}
6180
6181function createKeyId(key) {
6182  return isArray(key) ? key.join('.') : key
6183}
6184
6185function get(obj, path) {
6186  let list = [];
6187  let arr = false;
6188
6189  const deepGet = (obj, path, index) => {
6190    if (!isDefined(obj)) {
6191      return
6192    }
6193    if (!path[index]) {
6194      // If there's no path left, we've arrived at the object we care about.
6195      list.push(obj);
6196    } else {
6197      let key = path[index];
6198
6199      const value = obj[key];
6200
6201      if (!isDefined(value)) {
6202        return
6203      }
6204
6205      // If we're at the last value in the path, and if it's a string/number/bool,
6206      // add it to the list
6207      if (
6208        index === path.length - 1 &&
6209        (isString(value) || isNumber(value) || isBoolean(value))
6210      ) {
6211        list.push(toString(value));
6212      } else if (isArray(value)) {
6213        arr = true;
6214        // Search each item in the array.
6215        for (let i = 0, len = value.length; i < len; i += 1) {
6216          deepGet(value[i], path, index + 1);
6217        }
6218      } else if (path.length) {
6219        // An object. Recurse further.
6220        deepGet(value, path, index + 1);
6221      }
6222    }
6223  };
6224
6225  // Backwards compatibility (since path used to be a string)
6226  deepGet(obj, isString(path) ? path.split('.') : path, 0);
6227
6228  return arr ? list : list[0]
6229}
6230
6231const MatchOptions = {
6232  // Whether the matches should be included in the result set. When `true`, each record in the result
6233  // set will include the indices of the matched characters.
6234  // These can consequently be used for highlighting purposes.
6235  includeMatches: false,
6236  // When `true`, the matching function will continue to the end of a search pattern even if
6237  // a perfect match has already been located in the string.
6238  findAllMatches: false,
6239  // Minimum number of characters that must be matched before a result is considered a match
6240  minMatchCharLength: 1
6241};
6242
6243const BasicOptions = {
6244  // When `true`, the algorithm continues searching to the end of the input even if a perfect
6245  // match is found before the end of the same input.
6246  isCaseSensitive: false,
6247  // When true, the matching function will continue to the end of a search pattern even if
6248  includeScore: false,
6249  // List of properties that will be searched. This also supports nested properties.
6250  keys: [],
6251  // Whether to sort the result list, by score
6252  shouldSort: true,
6253  // Default sort function: sort by ascending score, ascending index
6254  sortFn: (a, b) =>
6255    a.score === b.score ? (a.idx < b.idx ? -1 : 1) : a.score < b.score ? -1 : 1
6256};
6257
6258const FuzzyOptions = {
6259  // Approximately where in the text is the pattern expected to be found?
6260  location: 0,
6261  // At what point does the match algorithm give up. A threshold of '0.0' requires a perfect match
6262  // (of both letters and location), a threshold of '1.0' would match anything.
6263  threshold: 0.6,
6264  // Determines how close the match must be to the fuzzy location (specified above).
6265  // An exact letter match which is 'distance' characters away from the fuzzy location
6266  // would score as a complete mismatch. A distance of '0' requires the match be at
6267  // the exact location specified, a threshold of '1000' would require a perfect match
6268  // to be within 800 characters of the fuzzy location to be found using a 0.8 threshold.
6269  distance: 100
6270};
6271
6272const AdvancedOptions = {
6273  // When `true`, it enables the use of unix-like search commands
6274  useExtendedSearch: false,
6275  // The get function to use when fetching an object's properties.
6276  // The default will search nested paths *ie foo.bar.baz*
6277  getFn: get,
6278  // When `true`, search will ignore `location` and `distance`, so it won't matter
6279  // where in the string the pattern appears.
6280  // More info: https://fusejs.io/concepts/scoring-theory.html#fuzziness-score
6281  ignoreLocation: false,
6282  // When `true`, the calculation for the relevance score (used for sorting) will
6283  // ignore the field-length norm.
6284  // More info: https://fusejs.io/concepts/scoring-theory.html#field-length-norm
6285  ignoreFieldNorm: false,
6286  // The weight to determine how much field length norm effects scoring.
6287  fieldNormWeight: 1
6288};
6289
6290var Config = {
6291  ...BasicOptions,
6292  ...MatchOptions,
6293  ...FuzzyOptions,
6294  ...AdvancedOptions
6295};
6296
6297const SPACE = /[^ ]+/g;
6298
6299// Field-length norm: the shorter the field, the higher the weight.
6300// Set to 3 decimals to reduce index size.
6301function norm(weight = 1, mantissa = 3) {
6302  const cache = new Map();
6303  const m = Math.pow(10, mantissa);
6304
6305  return {
6306    get(value) {
6307      const numTokens = value.match(SPACE).length;
6308
6309      if (cache.has(numTokens)) {
6310        return cache.get(numTokens)
6311      }
6312
6313      // Default function is 1/sqrt(x), weight makes that variable
6314      const norm = 1 / Math.pow(numTokens, 0.5 * weight);
6315
6316      // In place of `toFixed(mantissa)`, for faster computation
6317      const n = parseFloat(Math.round(norm * m) / m);
6318
6319      cache.set(numTokens, n);
6320
6321      return n
6322    },
6323    clear() {
6324      cache.clear();
6325    }
6326  }
6327}
6328
6329class FuseIndex {
6330  constructor({
6331    getFn = Config.getFn,
6332    fieldNormWeight = Config.fieldNormWeight
6333  } = {}) {
6334    this.norm = norm(fieldNormWeight, 3);
6335    this.getFn = getFn;
6336    this.isCreated = false;
6337
6338    this.setIndexRecords();
6339  }
6340  setSources(docs = []) {
6341    this.docs = docs;
6342  }
6343  setIndexRecords(records = []) {
6344    this.records = records;
6345  }
6346  setKeys(keys = []) {
6347    this.keys = keys;
6348    this._keysMap = {};
6349    keys.forEach((key, idx) => {
6350      this._keysMap[key.id] = idx;
6351    });
6352  }
6353  create() {
6354    if (this.isCreated || !this.docs.length) {
6355      return
6356    }
6357
6358    this.isCreated = true;
6359
6360    // List is Array<String>
6361    if (isString(this.docs[0])) {
6362      this.docs.forEach((doc, docIndex) => {
6363        this._addString(doc, docIndex);
6364      });
6365    } else {
6366      // List is Array<Object>
6367      this.docs.forEach((doc, docIndex) => {
6368        this._addObject(doc, docIndex);
6369      });
6370    }
6371
6372    this.norm.clear();
6373  }
6374  // Adds a doc to the end of the index
6375  add(doc) {
6376    const idx = this.size();
6377
6378    if (isString(doc)) {
6379      this._addString(doc, idx);
6380    } else {
6381      this._addObject(doc, idx);
6382    }
6383  }
6384  // Removes the doc at the specified index of the index
6385  removeAt(idx) {
6386    this.records.splice(idx, 1);
6387
6388    // Change ref index of every subsquent doc
6389    for (let i = idx, len = this.size(); i < len; i += 1) {
6390      this.records[i].i -= 1;
6391    }
6392  }
6393  getValueForItemAtKeyId(item, keyId) {
6394    return item[this._keysMap[keyId]]
6395  }
6396  size() {
6397    return this.records.length
6398  }
6399  _addString(doc, docIndex) {
6400    if (!isDefined(doc) || isBlank(doc)) {
6401      return
6402    }
6403
6404    let record = {
6405      v: doc,
6406      i: docIndex,
6407      n: this.norm.get(doc)
6408    };
6409
6410    this.records.push(record);
6411  }
6412  _addObject(doc, docIndex) {
6413    let record = { i: docIndex, $: {} };
6414
6415    // Iterate over every key (i.e, path), and fetch the value at that key
6416    this.keys.forEach((key, keyIndex) => {
6417      let value = key.getFn ? key.getFn(doc) : this.getFn(doc, key.path);
6418
6419      if (!isDefined(value)) {
6420        return
6421      }
6422
6423      if (isArray(value)) {
6424        let subRecords = [];
6425        const stack = [{ nestedArrIndex: -1, value }];
6426
6427        while (stack.length) {
6428          const { nestedArrIndex, value } = stack.pop();
6429
6430          if (!isDefined(value)) {
6431            continue
6432          }
6433
6434          if (isString(value) && !isBlank(value)) {
6435            let subRecord = {
6436              v: value,
6437              i: nestedArrIndex,
6438              n: this.norm.get(value)
6439            };
6440
6441            subRecords.push(subRecord);
6442          } else if (isArray(value)) {
6443            value.forEach((item, k) => {
6444              stack.push({
6445                nestedArrIndex: k,
6446                value: item
6447              });
6448            });
6449          } else ;
6450        }
6451        record.$[keyIndex] = subRecords;
6452      } else if (isString(value) && !isBlank(value)) {
6453        let subRecord = {
6454          v: value,
6455          n: this.norm.get(value)
6456        };
6457
6458        record.$[keyIndex] = subRecord;
6459      }
6460    });
6461
6462    this.records.push(record);
6463  }
6464  toJSON() {
6465    return {
6466      keys: this.keys,
6467      records: this.records
6468    }
6469  }
6470}
6471
6472function createIndex(
6473  keys,
6474  docs,
6475  { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}
6476) {
6477  const myIndex = new FuseIndex({ getFn, fieldNormWeight });
6478  myIndex.setKeys(keys.map(createKey));
6479  myIndex.setSources(docs);
6480  myIndex.create();
6481  return myIndex
6482}
6483
6484function parseIndex(
6485  data,
6486  { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}
6487) {
6488  const { keys, records } = data;
6489  const myIndex = new FuseIndex({ getFn, fieldNormWeight });
6490  myIndex.setKeys(keys);
6491  myIndex.setIndexRecords(records);
6492  return myIndex
6493}
6494
6495function computeScore$1(
6496  pattern,
6497  {
6498    errors = 0,
6499    currentLocation = 0,
6500    expectedLocation = 0,
6501    distance = Config.distance,
6502    ignoreLocation = Config.ignoreLocation
6503  } = {}
6504) {
6505  const accuracy = errors / pattern.length;
6506
6507  if (ignoreLocation) {
6508    return accuracy
6509  }
6510
6511  const proximity = Math.abs(expectedLocation - currentLocation);
6512
6513  if (!distance) {
6514    // Dodge divide by zero error.
6515    return proximity ? 1.0 : accuracy
6516  }
6517
6518  return accuracy + proximity / distance
6519}
6520
6521function convertMaskToIndices(
6522  matchmask = [],
6523  minMatchCharLength = Config.minMatchCharLength
6524) {
6525  let indices = [];
6526  let start = -1;
6527  let end = -1;
6528  let i = 0;
6529
6530  for (let len = matchmask.length; i < len; i += 1) {
6531    let match = matchmask[i];
6532    if (match && start === -1) {
6533      start = i;
6534    } else if (!match && start !== -1) {
6535      end = i - 1;
6536      if (end - start + 1 >= minMatchCharLength) {
6537        indices.push([start, end]);
6538      }
6539      start = -1;
6540    }
6541  }
6542
6543  // (i-1 - start) + 1 => i - start
6544  if (matchmask[i - 1] && i - start >= minMatchCharLength) {
6545    indices.push([start, i - 1]);
6546  }
6547
6548  return indices
6549}
6550
6551// Machine word size
6552const MAX_BITS = 32;
6553
6554function search(
6555  text,
6556  pattern,
6557  patternAlphabet,
6558  {
6559    location = Config.location,
6560    distance = Config.distance,
6561    threshold = Config.threshold,
6562    findAllMatches = Config.findAllMatches,
6563    minMatchCharLength = Config.minMatchCharLength,
6564    includeMatches = Config.includeMatches,
6565    ignoreLocation = Config.ignoreLocation
6566  } = {}
6567) {
6568  if (pattern.length > MAX_BITS) {
6569    throw new Error(PATTERN_LENGTH_TOO_LARGE(MAX_BITS))
6570  }
6571
6572  const patternLen = pattern.length;
6573  // Set starting location at beginning text and initialize the alphabet.
6574  const textLen = text.length;
6575  // Handle the case when location > text.length
6576  const expectedLocation = Math.max(0, Math.min(location, textLen));
6577  // Highest score beyond which we give up.
6578  let currentThreshold = threshold;
6579  // Is there a nearby exact match? (speedup)
6580  let bestLocation = expectedLocation;
6581
6582  // Performance: only computer matches when the minMatchCharLength > 1
6583  // OR if `includeMatches` is true.
6584  const computeMatches = minMatchCharLength > 1 || includeMatches;
6585  // A mask of the matches, used for building the indices
6586  const matchMask = computeMatches ? Array(textLen) : [];
6587
6588  let index;
6589
6590  // Get all exact matches, here for speed up
6591  while ((index = text.indexOf(pattern, bestLocation)) > -1) {
6592    let score = computeScore$1(pattern, {
6593      currentLocation: index,
6594      expectedLocation,
6595      distance,
6596      ignoreLocation
6597    });
6598
6599    currentThreshold = Math.min(score, currentThreshold);
6600    bestLocation = index + patternLen;
6601
6602    if (computeMatches) {
6603      let i = 0;
6604      while (i < patternLen) {
6605        matchMask[index + i] = 1;
6606        i += 1;
6607      }
6608    }
6609  }
6610
6611  // Reset the best location
6612  bestLocation = -1;
6613
6614  let lastBitArr = [];
6615  let finalScore = 1;
6616  let binMax = patternLen + textLen;
6617
6618  const mask = 1 << (patternLen - 1);
6619
6620  for (let i = 0; i < patternLen; i += 1) {
6621    // Scan for the best match; each iteration allows for one more error.
6622    // Run a binary search to determine how far from the match location we can stray
6623    // at this error level.
6624    let binMin = 0;
6625    let binMid = binMax;
6626
6627    while (binMin < binMid) {
6628      const score = computeScore$1(pattern, {
6629        errors: i,
6630        currentLocation: expectedLocation + binMid,
6631        expectedLocation,
6632        distance,
6633        ignoreLocation
6634      });
6635
6636      if (score <= currentThreshold) {
6637        binMin = binMid;
6638      } else {
6639        binMax = binMid;
6640      }
6641
6642      binMid = Math.floor((binMax - binMin) / 2 + binMin);
6643    }
6644
6645    // Use the result from this iteration as the maximum for the next.
6646    binMax = binMid;
6647
6648    let start = Math.max(1, expectedLocation - binMid + 1);
6649    let finish = findAllMatches
6650      ? textLen
6651      : Math.min(expectedLocation + binMid, textLen) + patternLen;
6652
6653    // Initialize the bit array
6654    let bitArr = Array(finish + 2);
6655
6656    bitArr[finish + 1] = (1 << i) - 1;
6657
6658    for (let j = finish; j >= start; j -= 1) {
6659      let currentLocation = j - 1;
6660      let charMatch = patternAlphabet[text.charAt(currentLocation)];
6661
6662      if (computeMatches) {
6663        // Speed up: quick bool to int conversion (i.e, `charMatch ? 1 : 0`)
6664        matchMask[currentLocation] = +!!charMatch;
6665      }
6666
6667      // First pass: exact match
6668      bitArr[j] = ((bitArr[j + 1] << 1) | 1) & charMatch;
6669
6670      // Subsequent passes: fuzzy match
6671      if (i) {
6672        bitArr[j] |=
6673          ((lastBitArr[j + 1] | lastBitArr[j]) << 1) | 1 | lastBitArr[j + 1];
6674      }
6675
6676      if (bitArr[j] & mask) {
6677        finalScore = computeScore$1(pattern, {
6678          errors: i,
6679          currentLocation,
6680          expectedLocation,
6681          distance,
6682          ignoreLocation
6683        });
6684
6685        // This match will almost certainly be better than any existing match.
6686        // But check anyway.
6687        if (finalScore <= currentThreshold) {
6688          // Indeed it is
6689          currentThreshold = finalScore;
6690          bestLocation = currentLocation;
6691
6692          // Already passed `loc`, downhill from here on in.
6693          if (bestLocation <= expectedLocation) {
6694            break
6695          }
6696
6697          // When passing `bestLocation`, don't exceed our current distance from `expectedLocation`.
6698          start = Math.max(1, 2 * expectedLocation - bestLocation);
6699        }
6700      }
6701    }
6702
6703    // No hope for a (better) match at greater error levels.
6704    const score = computeScore$1(pattern, {
6705      errors: i + 1,
6706      currentLocation: expectedLocation,
6707      expectedLocation,
6708      distance,
6709      ignoreLocation
6710    });
6711
6712    if (score > currentThreshold) {
6713      break
6714    }
6715
6716    lastBitArr = bitArr;
6717  }
6718
6719  const result = {
6720    isMatch: bestLocation >= 0,
6721    // Count exact matches (those with a score of 0) to be "almost" exact
6722    score: Math.max(0.001, finalScore)
6723  };
6724
6725  if (computeMatches) {
6726    const indices = convertMaskToIndices(matchMask, minMatchCharLength);
6727    if (!indices.length) {
6728      result.isMatch = false;
6729    } else if (includeMatches) {
6730      result.indices = indices;
6731    }
6732  }
6733
6734  return result
6735}
6736
6737function createPatternAlphabet(pattern) {
6738  let mask = {};
6739
6740  for (let i = 0, len = pattern.length; i < len; i += 1) {
6741    const char = pattern.charAt(i);
6742    mask[char] = (mask[char] || 0) | (1 << (len - i - 1));
6743  }
6744
6745  return mask
6746}
6747
6748class BitapSearch {
6749  constructor(
6750    pattern,
6751    {
6752      location = Config.location,
6753      threshold = Config.threshold,
6754      distance = Config.distance,
6755      includeMatches = Config.includeMatches,
6756      findAllMatches = Config.findAllMatches,
6757      minMatchCharLength = Config.minMatchCharLength,
6758      isCaseSensitive = Config.isCaseSensitive,
6759      ignoreLocation = Config.ignoreLocation
6760    } = {}
6761  ) {
6762    this.options = {
6763      location,
6764      threshold,
6765      distance,
6766      includeMatches,
6767      findAllMatches,
6768      minMatchCharLength,
6769      isCaseSensitive,
6770      ignoreLocation
6771    };
6772
6773    this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();
6774
6775    this.chunks = [];
6776
6777    if (!this.pattern.length) {
6778      return
6779    }
6780
6781    const addChunk = (pattern, startIndex) => {
6782      this.chunks.push({
6783        pattern,
6784        alphabet: createPatternAlphabet(pattern),
6785        startIndex
6786      });
6787    };
6788
6789    const len = this.pattern.length;
6790
6791    if (len > MAX_BITS) {
6792      let i = 0;
6793      const remainder = len % MAX_BITS;
6794      const end = len - remainder;
6795
6796      while (i < end) {
6797        addChunk(this.pattern.substr(i, MAX_BITS), i);
6798        i += MAX_BITS;
6799      }
6800
6801      if (remainder) {
6802        const startIndex = len - MAX_BITS;
6803        addChunk(this.pattern.substr(startIndex), startIndex);
6804      }
6805    } else {
6806      addChunk(this.pattern, 0);
6807    }
6808  }
6809
6810  searchIn(text) {
6811    const { isCaseSensitive, includeMatches } = this.options;
6812
6813    if (!isCaseSensitive) {
6814      text = text.toLowerCase();
6815    }
6816
6817    // Exact match
6818    if (this.pattern === text) {
6819      let result = {
6820        isMatch: true,
6821        score: 0
6822      };
6823
6824      if (includeMatches) {
6825        result.indices = [[0, text.length - 1]];
6826      }
6827
6828      return result
6829    }
6830
6831    // Otherwise, use Bitap algorithm
6832    const {
6833      location,
6834      distance,
6835      threshold,
6836      findAllMatches,
6837      minMatchCharLength,
6838      ignoreLocation
6839    } = this.options;
6840
6841    let allIndices = [];
6842    let totalScore = 0;
6843    let hasMatches = false;
6844
6845    this.chunks.forEach(({ pattern, alphabet, startIndex }) => {
6846      const { isMatch, score, indices } = search(text, pattern, alphabet, {
6847        location: location + startIndex,
6848        distance,
6849        threshold,
6850        findAllMatches,
6851        minMatchCharLength,
6852        includeMatches,
6853        ignoreLocation
6854      });
6855
6856      if (isMatch) {
6857        hasMatches = true;
6858      }
6859
6860      totalScore += score;
6861
6862      if (isMatch && indices) {
6863        allIndices = [...allIndices, ...indices];
6864      }
6865    });
6866
6867    let result = {
6868      isMatch: hasMatches,
6869      score: hasMatches ? totalScore / this.chunks.length : 1
6870    };
6871
6872    if (hasMatches && includeMatches) {
6873      result.indices = allIndices;
6874    }
6875
6876    return result
6877  }
6878}
6879
6880class BaseMatch {
6881  constructor(pattern) {
6882    this.pattern = pattern;
6883  }
6884  static isMultiMatch(pattern) {
6885    return getMatch(pattern, this.multiRegex)
6886  }
6887  static isSingleMatch(pattern) {
6888    return getMatch(pattern, this.singleRegex)
6889  }
6890  search(/*text*/) {}
6891}
6892
6893function getMatch(pattern, exp) {
6894  const matches = pattern.match(exp);
6895  return matches ? matches[1] : null
6896}
6897
6898// Token: 'file
6899
6900class ExactMatch extends BaseMatch {
6901  constructor(pattern) {
6902    super(pattern);
6903  }
6904  static get type() {
6905    return 'exact'
6906  }
6907  static get multiRegex() {
6908    return /^="(.*)"$/
6909  }
6910  static get singleRegex() {
6911    return /^=(.*)$/
6912  }
6913  search(text) {
6914    const isMatch = text === this.pattern;
6915
6916    return {
6917      isMatch,
6918      score: isMatch ? 0 : 1,
6919      indices: [0, this.pattern.length - 1]
6920    }
6921  }
6922}
6923
6924// Token: !fire
6925
6926class InverseExactMatch extends BaseMatch {
6927  constructor(pattern) {
6928    super(pattern);
6929  }
6930  static get type() {
6931    return 'inverse-exact'
6932  }
6933  static get multiRegex() {
6934    return /^!"(.*)"$/
6935  }
6936  static get singleRegex() {
6937    return /^!(.*)$/
6938  }
6939  search(text) {
6940    const index = text.indexOf(this.pattern);
6941    const isMatch = index === -1;
6942
6943    return {
6944      isMatch,
6945      score: isMatch ? 0 : 1,
6946      indices: [0, text.length - 1]
6947    }
6948  }
6949}
6950
6951// Token: ^file
6952
6953class PrefixExactMatch extends BaseMatch {
6954  constructor(pattern) {
6955    super(pattern);
6956  }
6957  static get type() {
6958    return 'prefix-exact'
6959  }
6960  static get multiRegex() {
6961    return /^\^"(.*)"$/
6962  }
6963  static get singleRegex() {
6964    return /^\^(.*)$/
6965  }
6966  search(text) {
6967    const isMatch = text.startsWith(this.pattern);
6968
6969    return {
6970      isMatch,
6971      score: isMatch ? 0 : 1,
6972      indices: [0, this.pattern.length - 1]
6973    }
6974  }
6975}
6976
6977// Token: !^fire
6978
6979class InversePrefixExactMatch extends BaseMatch {
6980  constructor(pattern) {
6981    super(pattern);
6982  }
6983  static get type() {
6984    return 'inverse-prefix-exact'
6985  }
6986  static get multiRegex() {
6987    return /^!\^"(.*)"$/
6988  }
6989  static get singleRegex() {
6990    return /^!\^(.*)$/
6991  }
6992  search(text) {
6993    const isMatch = !text.startsWith(this.pattern);
6994
6995    return {
6996      isMatch,
6997      score: isMatch ? 0 : 1,
6998      indices: [0, text.length - 1]
6999    }
7000  }
7001}
7002
7003// Token: .file$
7004
7005class SuffixExactMatch extends BaseMatch {
7006  constructor(pattern) {
7007    super(pattern);
7008  }
7009  static get type() {
7010    return 'suffix-exact'
7011  }
7012  static get multiRegex() {
7013    return /^"(.*)"\$$/
7014  }
7015  static get singleRegex() {
7016    return /^(.*)\$$/
7017  }
7018  search(text) {
7019    const isMatch = text.endsWith(this.pattern);
7020
7021    return {
7022      isMatch,
7023      score: isMatch ? 0 : 1,
7024      indices: [text.length - this.pattern.length, text.length - 1]
7025    }
7026  }
7027}
7028
7029// Token: !.file$
7030
7031class InverseSuffixExactMatch extends BaseMatch {
7032  constructor(pattern) {
7033    super(pattern);
7034  }
7035  static get type() {
7036    return 'inverse-suffix-exact'
7037  }
7038  static get multiRegex() {
7039    return /^!"(.*)"\$$/
7040  }
7041  static get singleRegex() {
7042    return /^!(.*)\$$/
7043  }
7044  search(text) {
7045    const isMatch = !text.endsWith(this.pattern);
7046    return {
7047      isMatch,
7048      score: isMatch ? 0 : 1,
7049      indices: [0, text.length - 1]
7050    }
7051  }
7052}
7053
7054class FuzzyMatch extends BaseMatch {
7055  constructor(
7056    pattern,
7057    {
7058      location = Config.location,
7059      threshold = Config.threshold,
7060      distance = Config.distance,
7061      includeMatches = Config.includeMatches,
7062      findAllMatches = Config.findAllMatches,
7063      minMatchCharLength = Config.minMatchCharLength,
7064      isCaseSensitive = Config.isCaseSensitive,
7065      ignoreLocation = Config.ignoreLocation
7066    } = {}
7067  ) {
7068    super(pattern);
7069    this._bitapSearch = new BitapSearch(pattern, {
7070      location,
7071      threshold,
7072      distance,
7073      includeMatches,
7074      findAllMatches,
7075      minMatchCharLength,
7076      isCaseSensitive,
7077      ignoreLocation
7078    });
7079  }
7080  static get type() {
7081    return 'fuzzy'
7082  }
7083  static get multiRegex() {
7084    return /^"(.*)"$/
7085  }
7086  static get singleRegex() {
7087    return /^(.*)$/
7088  }
7089  search(text) {
7090    return this._bitapSearch.searchIn(text)
7091  }
7092}
7093
7094// Token: 'file
7095
7096class IncludeMatch extends BaseMatch {
7097  constructor(pattern) {
7098    super(pattern);
7099  }
7100  static get type() {
7101    return 'include'
7102  }
7103  static get multiRegex() {
7104    return /^'"(.*)"$/
7105  }
7106  static get singleRegex() {
7107    return /^'(.*)$/
7108  }
7109  search(text) {
7110    let location = 0;
7111    let index;
7112
7113    const indices = [];
7114    const patternLen = this.pattern.length;
7115
7116    // Get all exact matches
7117    while ((index = text.indexOf(this.pattern, location)) > -1) {
7118      location = index + patternLen;
7119      indices.push([index, location - 1]);
7120    }
7121
7122    const isMatch = !!indices.length;
7123
7124    return {
7125      isMatch,
7126      score: isMatch ? 0 : 1,
7127      indices
7128    }
7129  }
7130}
7131
7132// ❗Order is important. DO NOT CHANGE.
7133const searchers = [
7134  ExactMatch,
7135  IncludeMatch,
7136  PrefixExactMatch,
7137  InversePrefixExactMatch,
7138  InverseSuffixExactMatch,
7139  SuffixExactMatch,
7140  InverseExactMatch,
7141  FuzzyMatch
7142];
7143
7144const searchersLen = searchers.length;
7145
7146// Regex to split by spaces, but keep anything in quotes together
7147const SPACE_RE = / +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/;
7148const OR_TOKEN = '|';
7149
7150// Return a 2D array representation of the query, for simpler parsing.
7151// Example:
7152// "^core go$ | rb$ | py$ xy$" => [["^core", "go$"], ["rb$"], ["py$", "xy$"]]
7153function parseQuery(pattern, options = {}) {
7154  return pattern.split(OR_TOKEN).map((item) => {
7155    let query = item
7156      .trim()
7157      .split(SPACE_RE)
7158      .filter((item) => item && !!item.trim());
7159
7160    let results = [];
7161    for (let i = 0, len = query.length; i < len; i += 1) {
7162      const queryItem = query[i];
7163
7164      // 1. Handle multiple query match (i.e, once that are quoted, like `"hello world"`)
7165      let found = false;
7166      let idx = -1;
7167      while (!found && ++idx < searchersLen) {
7168        const searcher = searchers[idx];
7169        let token = searcher.isMultiMatch(queryItem);
7170        if (token) {
7171          results.push(new searcher(token, options));
7172          found = true;
7173        }
7174      }
7175
7176      if (found) {
7177        continue
7178      }
7179
7180      // 2. Handle single query matches (i.e, once that are *not* quoted)
7181      idx = -1;
7182      while (++idx < searchersLen) {
7183        const searcher = searchers[idx];
7184        let token = searcher.isSingleMatch(queryItem);
7185        if (token) {
7186          results.push(new searcher(token, options));
7187          break
7188        }
7189      }
7190    }
7191
7192    return results
7193  })
7194}
7195
7196// These extended matchers can return an array of matches, as opposed
7197// to a singl match
7198const MultiMatchSet = new Set([FuzzyMatch.type, IncludeMatch.type]);
7199
7200/**
7201 * Command-like searching
7202 * ======================
7203 *
7204 * Given multiple search terms delimited by spaces.e.g. `^jscript .python$ ruby !java`,
7205 * search in a given text.
7206 *
7207 * Search syntax:
7208 *
7209 * | Token       | Match type                 | Description                            |
7210 * | ----------- | -------------------------- | -------------------------------------- |
7211 * | `jscript`   | fuzzy-match                | Items that fuzzy match `jscript`       |
7212 * | `=scheme`   | exact-match                | Items that are `scheme`                |
7213 * | `'python`   | include-match              | Items that include `python`            |
7214 * | `!ruby`     | inverse-exact-match        | Items that do not include `ruby`       |
7215 * | `^java`     | prefix-exact-match         | Items that start with `java`           |
7216 * | `!^earlang` | inverse-prefix-exact-match | Items that do not start with `earlang` |
7217 * | `.js$`      | suffix-exact-match         | Items that end with `.js`              |
7218 * | `!.go$`     | inverse-suffix-exact-match | Items that do not end with `.go`       |
7219 *
7220 * A single pipe character acts as an OR operator. For example, the following
7221 * query matches entries that start with `core` and end with either`go`, `rb`,
7222 * or`py`.
7223 *
7224 * ```
7225 * ^core go$ | rb$ | py$
7226 * ```
7227 */
7228class ExtendedSearch {
7229  constructor(
7230    pattern,
7231    {
7232      isCaseSensitive = Config.isCaseSensitive,
7233      includeMatches = Config.includeMatches,
7234      minMatchCharLength = Config.minMatchCharLength,
7235      ignoreLocation = Config.ignoreLocation,
7236      findAllMatches = Config.findAllMatches,
7237      location = Config.location,
7238      threshold = Config.threshold,
7239      distance = Config.distance
7240    } = {}
7241  ) {
7242    this.query = null;
7243    this.options = {
7244      isCaseSensitive,
7245      includeMatches,
7246      minMatchCharLength,
7247      findAllMatches,
7248      ignoreLocation,
7249      location,
7250      threshold,
7251      distance
7252    };
7253
7254    this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();
7255    this.query = parseQuery(this.pattern, this.options);
7256  }
7257
7258  static condition(_, options) {
7259    return options.useExtendedSearch
7260  }
7261
7262  searchIn(text) {
7263    const query = this.query;
7264
7265    if (!query) {
7266      return {
7267        isMatch: false,
7268        score: 1
7269      }
7270    }
7271
7272    const { includeMatches, isCaseSensitive } = this.options;
7273
7274    text = isCaseSensitive ? text : text.toLowerCase();
7275
7276    let numMatches = 0;
7277    let allIndices = [];
7278    let totalScore = 0;
7279
7280    // ORs
7281    for (let i = 0, qLen = query.length; i < qLen; i += 1) {
7282      const searchers = query[i];
7283
7284      // Reset indices
7285      allIndices.length = 0;
7286      numMatches = 0;
7287
7288      // ANDs
7289      for (let j = 0, pLen = searchers.length; j < pLen; j += 1) {
7290        const searcher = searchers[j];
7291        const { isMatch, indices, score } = searcher.search(text);
7292
7293        if (isMatch) {
7294          numMatches += 1;
7295          totalScore += score;
7296          if (includeMatches) {
7297            const type = searcher.constructor.type;
7298            if (MultiMatchSet.has(type)) {
7299              allIndices = [...allIndices, ...indices];
7300            } else {
7301              allIndices.push(indices);
7302            }
7303          }
7304        } else {
7305          totalScore = 0;
7306          numMatches = 0;
7307          allIndices.length = 0;
7308          break
7309        }
7310      }
7311
7312      // OR condition, so if TRUE, return
7313      if (numMatches) {
7314        let result = {
7315          isMatch: true,
7316          score: totalScore / numMatches
7317        };
7318
7319        if (includeMatches) {
7320          result.indices = allIndices;
7321        }
7322
7323        return result
7324      }
7325    }
7326
7327    // Nothing was matched
7328    return {
7329      isMatch: false,
7330      score: 1
7331    }
7332  }
7333}
7334
7335const registeredSearchers = [];
7336
7337function register(...args) {
7338  registeredSearchers.push(...args);
7339}
7340
7341function createSearcher(pattern, options) {
7342  for (let i = 0, len = registeredSearchers.length; i < len; i += 1) {
7343    let searcherClass = registeredSearchers[i];
7344    if (searcherClass.condition(pattern, options)) {
7345      return new searcherClass(pattern, options)
7346    }
7347  }
7348
7349  return new BitapSearch(pattern, options)
7350}
7351
7352const LogicalOperator = {
7353  AND: '$and',
7354  OR: '$or'
7355};
7356
7357const KeyType = {
7358  PATH: '$path',
7359  PATTERN: '$val'
7360};
7361
7362const isExpression = (query) =>
7363  !!(query[LogicalOperator.AND] || query[LogicalOperator.OR]);
7364
7365const isPath = (query) => !!query[KeyType.PATH];
7366
7367const isLeaf = (query) =>
7368  !isArray(query) && isObject(query) && !isExpression(query);
7369
7370const convertToExplicit = (query) => ({
7371  [LogicalOperator.AND]: Object.keys(query).map((key) => ({
7372    [key]: query[key]
7373  }))
7374});
7375
7376// When `auto` is `true`, the parse function will infer and initialize and add
7377// the appropriate `Searcher` instance
7378function parse(query, options, { auto = true } = {}) {
7379  const next = (query) => {
7380    let keys = Object.keys(query);
7381
7382    const isQueryPath = isPath(query);
7383
7384    if (!isQueryPath && keys.length > 1 && !isExpression(query)) {
7385      return next(convertToExplicit(query))
7386    }
7387
7388    if (isLeaf(query)) {
7389      const key = isQueryPath ? query[KeyType.PATH] : keys[0];
7390
7391      const pattern = isQueryPath ? query[KeyType.PATTERN] : query[key];
7392
7393      if (!isString(pattern)) {
7394        throw new Error(LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY(key))
7395      }
7396
7397      const obj = {
7398        keyId: createKeyId(key),
7399        pattern
7400      };
7401
7402      if (auto) {
7403        obj.searcher = createSearcher(pattern, options);
7404      }
7405
7406      return obj
7407    }
7408
7409    let node = {
7410      children: [],
7411      operator: keys[0]
7412    };
7413
7414    keys.forEach((key) => {
7415      const value = query[key];
7416
7417      if (isArray(value)) {
7418        value.forEach((item) => {
7419          node.children.push(next(item));
7420        });
7421      }
7422    });
7423
7424    return node
7425  };
7426
7427  if (!isExpression(query)) {
7428    query = convertToExplicit(query);
7429  }
7430
7431  return next(query)
7432}
7433
7434// Practical scoring function
7435function computeScore(
7436  results,
7437  { ignoreFieldNorm = Config.ignoreFieldNorm }
7438) {
7439  results.forEach((result) => {
7440    let totalScore = 1;
7441
7442    result.matches.forEach(({ key, norm, score }) => {
7443      const weight = key ? key.weight : null;
7444
7445      totalScore *= Math.pow(
7446        score === 0 && weight ? Number.EPSILON : score,
7447        (weight || 1) * (ignoreFieldNorm ? 1 : norm)
7448      );
7449    });
7450
7451    result.score = totalScore;
7452  });
7453}
7454
7455function transformMatches(result, data) {
7456  const matches = result.matches;
7457  data.matches = [];
7458
7459  if (!isDefined(matches)) {
7460    return
7461  }
7462
7463  matches.forEach((match) => {
7464    if (!isDefined(match.indices) || !match.indices.length) {
7465      return
7466    }
7467
7468    const { indices, value } = match;
7469
7470    let obj = {
7471      indices,
7472      value
7473    };
7474
7475    if (match.key) {
7476      obj.key = match.key.src;
7477    }
7478
7479    if (match.idx > -1) {
7480      obj.refIndex = match.idx;
7481    }
7482
7483    data.matches.push(obj);
7484  });
7485}
7486
7487function transformScore(result, data) {
7488  data.score = result.score;
7489}
7490
7491function format(
7492  results,
7493  docs,
7494  {
7495    includeMatches = Config.includeMatches,
7496    includeScore = Config.includeScore
7497  } = {}
7498) {
7499  const transformers = [];
7500
7501  if (includeMatches) transformers.push(transformMatches);
7502  if (includeScore) transformers.push(transformScore);
7503
7504  return results.map((result) => {
7505    const { idx } = result;
7506
7507    const data = {
7508      item: docs[idx],
7509      refIndex: idx
7510    };
7511
7512    if (transformers.length) {
7513      transformers.forEach((transformer) => {
7514        transformer(result, data);
7515      });
7516    }
7517
7518    return data
7519  })
7520}
7521
7522class Fuse {
7523  constructor(docs, options = {}, index) {
7524    this.options = { ...Config, ...options };
7525
7526    if (
7527      this.options.useExtendedSearch &&
7528      !true
7529    ) {}
7530
7531    this._keyStore = new KeyStore(this.options.keys);
7532
7533    this.setCollection(docs, index);
7534  }
7535
7536  setCollection(docs, index) {
7537    this._docs = docs;
7538
7539    if (index && !(index instanceof FuseIndex)) {
7540      throw new Error(INCORRECT_INDEX_TYPE)
7541    }
7542
7543    this._myIndex =
7544      index ||
7545      createIndex(this.options.keys, this._docs, {
7546        getFn: this.options.getFn,
7547        fieldNormWeight: this.options.fieldNormWeight
7548      });
7549  }
7550
7551  add(doc) {
7552    if (!isDefined(doc)) {
7553      return
7554    }
7555
7556    this._docs.push(doc);
7557    this._myIndex.add(doc);
7558  }
7559
7560  remove(predicate = (/* doc, idx */) => false) {
7561    const results = [];
7562
7563    for (let i = 0, len = this._docs.length; i < len; i += 1) {
7564      const doc = this._docs[i];
7565      if (predicate(doc, i)) {
7566        this.removeAt(i);
7567        i -= 1;
7568        len -= 1;
7569
7570        results.push(doc);
7571      }
7572    }
7573
7574    return results
7575  }
7576
7577  removeAt(idx) {
7578    this._docs.splice(idx, 1);
7579    this._myIndex.removeAt(idx);
7580  }
7581
7582  getIndex() {
7583    return this._myIndex
7584  }
7585
7586  search(query, { limit = -1 } = {}) {
7587    const {
7588      includeMatches,
7589      includeScore,
7590      shouldSort,
7591      sortFn,
7592      ignoreFieldNorm
7593    } = this.options;
7594
7595    let results = isString(query)
7596      ? isString(this._docs[0])
7597        ? this._searchStringList(query)
7598        : this._searchObjectList(query)
7599      : this._searchLogical(query);
7600
7601    computeScore(results, { ignoreFieldNorm });
7602
7603    if (shouldSort) {
7604      results.sort(sortFn);
7605    }
7606
7607    if (isNumber(limit) && limit > -1) {
7608      results = results.slice(0, limit);
7609    }
7610
7611    return format(results, this._docs, {
7612      includeMatches,
7613      includeScore
7614    })
7615  }
7616
7617  _searchStringList(query) {
7618    const searcher = createSearcher(query, this.options);
7619    const { records } = this._myIndex;
7620    const results = [];
7621
7622    // Iterate over every string in the index
7623    records.forEach(({ v: text, i: idx, n: norm }) => {
7624      if (!isDefined(text)) {
7625        return
7626      }
7627
7628      const { isMatch, score, indices } = searcher.searchIn(text);
7629
7630      if (isMatch) {
7631        results.push({
7632          item: text,
7633          idx,
7634          matches: [{ score, value: text, norm, indices }]
7635        });
7636      }
7637    });
7638
7639    return results
7640  }
7641
7642  _searchLogical(query) {
7643
7644    const expression = parse(query, this.options);
7645
7646    const evaluate = (node, item, idx) => {
7647      if (!node.children) {
7648        const { keyId, searcher } = node;
7649
7650        const matches = this._findMatches({
7651          key: this._keyStore.get(keyId),
7652          value: this._myIndex.getValueForItemAtKeyId(item, keyId),
7653          searcher
7654        });
7655
7656        if (matches && matches.length) {
7657          return [
7658            {
7659              idx,
7660              item,
7661              matches
7662            }
7663          ]
7664        }
7665
7666        return []
7667      }
7668
7669      const res = [];
7670      for (let i = 0, len = node.children.length; i < len; i += 1) {
7671        const child = node.children[i];
7672        const result = evaluate(child, item, idx);
7673        if (result.length) {
7674          res.push(...result);
7675        } else if (node.operator === LogicalOperator.AND) {
7676          return []
7677        }
7678      }
7679      return res
7680    };
7681
7682    const records = this._myIndex.records;
7683    const resultMap = {};
7684    const results = [];
7685
7686    records.forEach(({ $: item, i: idx }) => {
7687      if (isDefined(item)) {
7688        let expResults = evaluate(expression, item, idx);
7689
7690        if (expResults.length) {
7691          // Dedupe when adding
7692          if (!resultMap[idx]) {
7693            resultMap[idx] = { idx, item, matches: [] };
7694            results.push(resultMap[idx]);
7695          }
7696          expResults.forEach(({ matches }) => {
7697            resultMap[idx].matches.push(...matches);
7698          });
7699        }
7700      }
7701    });
7702
7703    return results
7704  }
7705
7706  _searchObjectList(query) {
7707    const searcher = createSearcher(query, this.options);
7708    const { keys, records } = this._myIndex;
7709    const results = [];
7710
7711    // List is Array<Object>
7712    records.forEach(({ $: item, i: idx }) => {
7713      if (!isDefined(item)) {
7714        return
7715      }
7716
7717      let matches = [];
7718
7719      // Iterate over every key (i.e, path), and fetch the value at that key
7720      keys.forEach((key, keyIndex) => {
7721        matches.push(
7722          ...this._findMatches({
7723            key,
7724            value: item[keyIndex],
7725            searcher
7726          })
7727        );
7728      });
7729
7730      if (matches.length) {
7731        results.push({
7732          idx,
7733          item,
7734          matches
7735        });
7736      }
7737    });
7738
7739    return results
7740  }
7741  _findMatches({ key, value, searcher }) {
7742    if (!isDefined(value)) {
7743      return []
7744    }
7745
7746    let matches = [];
7747
7748    if (isArray(value)) {
7749      value.forEach(({ v: text, i: idx, n: norm }) => {
7750        if (!isDefined(text)) {
7751          return
7752        }
7753
7754        const { isMatch, score, indices } = searcher.searchIn(text);
7755
7756        if (isMatch) {
7757          matches.push({
7758            score,
7759            key,
7760            value: text,
7761            idx,
7762            norm,
7763            indices
7764          });
7765        }
7766      });
7767    } else {
7768      const { v: text, n: norm } = value;
7769
7770      const { isMatch, score, indices } = searcher.searchIn(text);
7771
7772      if (isMatch) {
7773        matches.push({ score, key, value: text, norm, indices });
7774      }
7775    }
7776
7777    return matches
7778  }
7779}
7780
7781Fuse.version = '6.6.2';
7782Fuse.createIndex = createIndex;
7783Fuse.parseIndex = parseIndex;
7784Fuse.config = Config;
7785
7786{
7787  Fuse.parseQuery = parse;
7788}
7789
7790{
7791  register(ExtendedSearch);
7792}
7793
7794
7795
7796
7797/***/ }),
7798
7799/***/ 791:
7800/***/ (function(__unused_webpack_module, __webpack_exports__, __nested_webpack_require_177999__) {
7801
7802// ESM COMPAT FLAG
7803__nested_webpack_require_177999__.r(__webpack_exports__);
7804
7805// EXPORTS
7806__nested_webpack_require_177999__.d(__webpack_exports__, {
7807  "__DO_NOT_USE__ActionTypes": function() { return /* binding */ ActionTypes; },
7808  "applyMiddleware": function() { return /* binding */ applyMiddleware; },
7809  "bindActionCreators": function() { return /* binding */ bindActionCreators; },
7810  "combineReducers": function() { return /* binding */ combineReducers; },
7811  "compose": function() { return /* binding */ compose; },
7812  "createStore": function() { return /* binding */ createStore; },
7813  "legacy_createStore": function() { return /* binding */ legacy_createStore; }
7814});
7815
7816;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js
7817function _typeof(obj) {
7818  "@babel/helpers - typeof";
7819
7820  return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
7821    return typeof obj;
7822  } : function (obj) {
7823    return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
7824  }, _typeof(obj);
7825}
7826;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toPrimitive.js
7827
7828function _toPrimitive(input, hint) {
7829  if (_typeof(input) !== "object" || input === null) return input;
7830  var prim = input[Symbol.toPrimitive];
7831  if (prim !== undefined) {
7832    var res = prim.call(input, hint || "default");
7833    if (_typeof(res) !== "object") return res;
7834    throw new TypeError("@@toPrimitive must return a primitive value.");
7835  }
7836  return (hint === "string" ? String : Number)(input);
7837}
7838;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js
7839
7840
7841function _toPropertyKey(arg) {
7842  var key = _toPrimitive(arg, "string");
7843  return _typeof(key) === "symbol" ? key : String(key);
7844}
7845;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js
7846
7847function _defineProperty(obj, key, value) {
7848  key = _toPropertyKey(key);
7849  if (key in obj) {
7850    Object.defineProperty(obj, key, {
7851      value: value,
7852      enumerable: true,
7853      configurable: true,
7854      writable: true
7855    });
7856  } else {
7857    obj[key] = value;
7858  }
7859  return obj;
7860}
7861;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js
7862
7863function ownKeys(object, enumerableOnly) {
7864  var keys = Object.keys(object);
7865  if (Object.getOwnPropertySymbols) {
7866    var symbols = Object.getOwnPropertySymbols(object);
7867    enumerableOnly && (symbols = symbols.filter(function (sym) {
7868      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
7869    })), keys.push.apply(keys, symbols);
7870  }
7871  return keys;
7872}
7873function _objectSpread2(target) {
7874  for (var i = 1; i < arguments.length; i++) {
7875    var source = null != arguments[i] ? arguments[i] : {};
7876    i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
7877      _defineProperty(target, key, source[key]);
7878    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
7879      Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
7880    });
7881  }
7882  return target;
7883}
7884;// CONCATENATED MODULE: ./node_modules/redux/es/redux.js
7885
7886
7887/**
7888 * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js
7889 *
7890 * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes
7891 * during build.
7892 * @param {number} code
7893 */
7894function formatProdErrorMessage(code) {
7895  return "Minified Redux error #" + code + "; visit https://redux.js.org/Errors?code=" + code + " for the full message or " + 'use the non-minified dev environment for full errors. ';
7896}
7897
7898// Inlined version of the `symbol-observable` polyfill
7899var $$observable = (function () {
7900  return typeof Symbol === 'function' && Symbol.observable || '@@observable';
7901})();
7902
7903/**
7904 * These are private action types reserved by Redux.
7905 * For any unknown actions, you must return the current state.
7906 * If the current state is undefined, you must return the initial state.
7907 * Do not reference these action types directly in your code.
7908 */
7909var randomString = function randomString() {
7910  return Math.random().toString(36).substring(7).split('').join('.');
7911};
7912
7913var ActionTypes = {
7914  INIT: "@@redux/INIT" + randomString(),
7915  REPLACE: "@@redux/REPLACE" + randomString(),
7916  PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {
7917    return "@@redux/PROBE_UNKNOWN_ACTION" + randomString();
7918  }
7919};
7920
7921/**
7922 * @param {any} obj The object to inspect.
7923 * @returns {boolean} True if the argument appears to be a plain object.
7924 */
7925function isPlainObject(obj) {
7926  if (typeof obj !== 'object' || obj === null) return false;
7927  var proto = obj;
7928
7929  while (Object.getPrototypeOf(proto) !== null) {
7930    proto = Object.getPrototypeOf(proto);
7931  }
7932
7933  return Object.getPrototypeOf(obj) === proto;
7934}
7935
7936// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of
7937function miniKindOf(val) {
7938  if (val === void 0) return 'undefined';
7939  if (val === null) return 'null';
7940  var type = typeof val;
7941
7942  switch (type) {
7943    case 'boolean':
7944    case 'string':
7945    case 'number':
7946    case 'symbol':
7947    case 'function':
7948      {
7949        return type;
7950      }
7951  }
7952
7953  if (Array.isArray(val)) return 'array';
7954  if (isDate(val)) return 'date';
7955  if (isError(val)) return 'error';
7956  var constructorName = ctorName(val);
7957
7958  switch (constructorName) {
7959    case 'Symbol':
7960    case 'Promise':
7961    case 'WeakMap':
7962    case 'WeakSet':
7963    case 'Map':
7964    case 'Set':
7965      return constructorName;
7966  } // other
7967
7968
7969  return type.slice(8, -1).toLowerCase().replace(/\s/g, '');
7970}
7971
7972function ctorName(val) {
7973  return typeof val.constructor === 'function' ? val.constructor.name : null;
7974}
7975
7976function isError(val) {
7977  return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';
7978}
7979
7980function isDate(val) {
7981  if (val instanceof Date) return true;
7982  return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';
7983}
7984
7985function kindOf(val) {
7986  var typeOfVal = typeof val;
7987
7988  if (false) {}
7989
7990  return typeOfVal;
7991}
7992
7993/**
7994 * @deprecated
7995 *
7996 * **We recommend using the `configureStore` method
7997 * of the `@reduxjs/toolkit` package**, which replaces `createStore`.
7998 *
7999 * Redux Toolkit is our recommended approach for writing Redux logic today,
8000 * including store setup, reducers, data fetching, and more.
8001 *
8002 * **For more details, please read this Redux docs page:**
8003 * **https://redux.js.org/introduction/why-rtk-is-redux-today**
8004 *
8005 * `configureStore` from Redux Toolkit is an improved version of `createStore` that
8006 * simplifies setup and helps avoid common bugs.
8007 *
8008 * You should not be using the `redux` core package by itself today, except for learning purposes.
8009 * The `createStore` method from the core `redux` package will not be removed, but we encourage
8010 * all users to migrate to using Redux Toolkit for all Redux code.
8011 *
8012 * If you want to use `createStore` without this visual deprecation warning, use
8013 * the `legacy_createStore` import instead:
8014 *
8015 * `import { legacy_createStore as createStore} from 'redux'`
8016 *
8017 */
8018
8019function createStore(reducer, preloadedState, enhancer) {
8020  var _ref2;
8021
8022  if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {
8023    throw new Error(  true ? formatProdErrorMessage(0) : 0);
8024  }
8025
8026  if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {
8027    enhancer = preloadedState;
8028    preloadedState = undefined;
8029  }
8030
8031  if (typeof enhancer !== 'undefined') {
8032    if (typeof enhancer !== 'function') {
8033      throw new Error(  true ? formatProdErrorMessage(1) : 0);
8034    }
8035
8036    return enhancer(createStore)(reducer, preloadedState);
8037  }
8038
8039  if (typeof reducer !== 'function') {
8040    throw new Error(  true ? formatProdErrorMessage(2) : 0);
8041  }
8042
8043  var currentReducer = reducer;
8044  var currentState = preloadedState;
8045  var currentListeners = [];
8046  var nextListeners = currentListeners;
8047  var isDispatching = false;
8048  /**
8049   * This makes a shallow copy of currentListeners so we can use
8050   * nextListeners as a temporary list while dispatching.
8051   *
8052   * This prevents any bugs around consumers calling
8053   * subscribe/unsubscribe in the middle of a dispatch.
8054   */
8055
8056  function ensureCanMutateNextListeners() {
8057    if (nextListeners === currentListeners) {
8058      nextListeners = currentListeners.slice();
8059    }
8060  }
8061  /**
8062   * Reads the state tree managed by the store.
8063   *
8064   * @returns {any} The current state tree of your application.
8065   */
8066
8067
8068  function getState() {
8069    if (isDispatching) {
8070      throw new Error(  true ? formatProdErrorMessage(3) : 0);
8071    }
8072
8073    return currentState;
8074  }
8075  /**
8076   * Adds a change listener. It will be called any time an action is dispatched,
8077   * and some part of the state tree may potentially have changed. You may then
8078   * call `getState()` to read the current state tree inside the callback.
8079   *
8080   * You may call `dispatch()` from a change listener, with the following
8081   * caveats:
8082   *
8083   * 1. The subscriptions are snapshotted just before every `dispatch()` call.
8084   * If you subscribe or unsubscribe while the listeners are being invoked, this
8085   * will not have any effect on the `dispatch()` that is currently in progress.
8086   * However, the next `dispatch()` call, whether nested or not, will use a more
8087   * recent snapshot of the subscription list.
8088   *
8089   * 2. The listener should not expect to see all state changes, as the state
8090   * might have been updated multiple times during a nested `dispatch()` before
8091   * the listener is called. It is, however, guaranteed that all subscribers
8092   * registered before the `dispatch()` started will be called with the latest
8093   * state by the time it exits.
8094   *
8095   * @param {Function} listener A callback to be invoked on every dispatch.
8096   * @returns {Function} A function to remove this change listener.
8097   */
8098
8099
8100  function subscribe(listener) {
8101    if (typeof listener !== 'function') {
8102      throw new Error(  true ? formatProdErrorMessage(4) : 0);
8103    }
8104
8105    if (isDispatching) {
8106      throw new Error(  true ? formatProdErrorMessage(5) : 0);
8107    }
8108
8109    var isSubscribed = true;
8110    ensureCanMutateNextListeners();
8111    nextListeners.push(listener);
8112    return function unsubscribe() {
8113      if (!isSubscribed) {
8114        return;
8115      }
8116
8117      if (isDispatching) {
8118        throw new Error(  true ? formatProdErrorMessage(6) : 0);
8119      }
8120
8121      isSubscribed = false;
8122      ensureCanMutateNextListeners();
8123      var index = nextListeners.indexOf(listener);
8124      nextListeners.splice(index, 1);
8125      currentListeners = null;
8126    };
8127  }
8128  /**
8129   * Dispatches an action. It is the only way to trigger a state change.
8130   *
8131   * The `reducer` function, used to create the store, will be called with the
8132   * current state tree and the given `action`. Its return value will
8133   * be considered the **next** state of the tree, and the change listeners
8134   * will be notified.
8135   *
8136   * The base implementation only supports plain object actions. If you want to
8137   * dispatch a Promise, an Observable, a thunk, or something else, you need to
8138   * wrap your store creating function into the corresponding middleware. For
8139   * example, see the documentation for the `redux-thunk` package. Even the
8140   * middleware will eventually dispatch plain object actions using this method.
8141   *
8142   * @param {Object} action A plain object representing “what changed”. It is
8143   * a good idea to keep actions serializable so you can record and replay user
8144   * sessions, or use the time travelling `redux-devtools`. An action must have
8145   * a `type` property which may not be `undefined`. It is a good idea to use
8146   * string constants for action types.
8147   *
8148   * @returns {Object} For convenience, the same action object you dispatched.
8149   *
8150   * Note that, if you use a custom middleware, it may wrap `dispatch()` to
8151   * return something else (for example, a Promise you can await).
8152   */
8153
8154
8155  function dispatch(action) {
8156    if (!isPlainObject(action)) {
8157      throw new Error(  true ? formatProdErrorMessage(7) : 0);
8158    }
8159
8160    if (typeof action.type === 'undefined') {
8161      throw new Error(  true ? formatProdErrorMessage(8) : 0);
8162    }
8163
8164    if (isDispatching) {
8165      throw new Error(  true ? formatProdErrorMessage(9) : 0);
8166    }
8167
8168    try {
8169      isDispatching = true;
8170      currentState = currentReducer(currentState, action);
8171    } finally {
8172      isDispatching = false;
8173    }
8174
8175    var listeners = currentListeners = nextListeners;
8176
8177    for (var i = 0; i < listeners.length; i++) {
8178      var listener = listeners[i];
8179      listener();
8180    }
8181
8182    return action;
8183  }
8184  /**
8185   * Replaces the reducer currently used by the store to calculate the state.
8186   *
8187   * You might need this if your app implements code splitting and you want to
8188   * load some of the reducers dynamically. You might also need this if you
8189   * implement a hot reloading mechanism for Redux.
8190   *
8191   * @param {Function} nextReducer The reducer for the store to use instead.
8192   * @returns {void}
8193   */
8194
8195
8196  function replaceReducer(nextReducer) {
8197    if (typeof nextReducer !== 'function') {
8198      throw new Error(  true ? formatProdErrorMessage(10) : 0);
8199    }
8200
8201    currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.
8202    // Any reducers that existed in both the new and old rootReducer
8203    // will receive the previous state. This effectively populates
8204    // the new state tree with any relevant data from the old one.
8205
8206    dispatch({
8207      type: ActionTypes.REPLACE
8208    });
8209  }
8210  /**
8211   * Interoperability point for observable/reactive libraries.
8212   * @returns {observable} A minimal observable of state changes.
8213   * For more information, see the observable proposal:
8214   * https://github.com/tc39/proposal-observable
8215   */
8216
8217
8218  function observable() {
8219    var _ref;
8220
8221    var outerSubscribe = subscribe;
8222    return _ref = {
8223      /**
8224       * The minimal observable subscription method.
8225       * @param {Object} observer Any object that can be used as an observer.
8226       * The observer object should have a `next` method.
8227       * @returns {subscription} An object with an `unsubscribe` method that can
8228       * be used to unsubscribe the observable from the store, and prevent further
8229       * emission of values from the observable.
8230       */
8231      subscribe: function subscribe(observer) {
8232        if (typeof observer !== 'object' || observer === null) {
8233          throw new Error(  true ? formatProdErrorMessage(11) : 0);
8234        }
8235
8236        function observeState() {
8237          if (observer.next) {
8238            observer.next(getState());
8239          }
8240        }
8241
8242        observeState();
8243        var unsubscribe = outerSubscribe(observeState);
8244        return {
8245          unsubscribe: unsubscribe
8246        };
8247      }
8248    }, _ref[$$observable] = function () {
8249      return this;
8250    }, _ref;
8251  } // When a store is created, an "INIT" action is dispatched so that every
8252  // reducer returns their initial state. This effectively populates
8253  // the initial state tree.
8254
8255
8256  dispatch({
8257    type: ActionTypes.INIT
8258  });
8259  return _ref2 = {
8260    dispatch: dispatch,
8261    subscribe: subscribe,
8262    getState: getState,
8263    replaceReducer: replaceReducer
8264  }, _ref2[$$observable] = observable, _ref2;
8265}
8266/**
8267 * Creates a Redux store that holds the state tree.
8268 *
8269 * **We recommend using `configureStore` from the
8270 * `@reduxjs/toolkit` package**, which replaces `createStore`:
8271 * **https://redux.js.org/introduction/why-rtk-is-redux-today**
8272 *
8273 * The only way to change the data in the store is to call `dispatch()` on it.
8274 *
8275 * There should only be a single store in your app. To specify how different
8276 * parts of the state tree respond to actions, you may combine several reducers
8277 * into a single reducer function by using `combineReducers`.
8278 *
8279 * @param {Function} reducer A function that returns the next state tree, given
8280 * the current state tree and the action to handle.
8281 *
8282 * @param {any} [preloadedState] The initial state. You may optionally specify it
8283 * to hydrate the state from the server in universal apps, or to restore a
8284 * previously serialized user session.
8285 * If you use `combineReducers` to produce the root reducer function, this must be
8286 * an object with the same shape as `combineReducers` keys.
8287 *
8288 * @param {Function} [enhancer] The store enhancer. You may optionally specify it
8289 * to enhance the store with third-party capabilities such as middleware,
8290 * time travel, persistence, etc. The only store enhancer that ships with Redux
8291 * is `applyMiddleware()`.
8292 *
8293 * @returns {Store} A Redux store that lets you read the state, dispatch actions
8294 * and subscribe to changes.
8295 */
8296
8297var legacy_createStore = createStore;
8298
8299/**
8300 * Prints a warning in the console if it exists.
8301 *
8302 * @param {String} message The warning message.
8303 * @returns {void}
8304 */
8305function warning(message) {
8306  /* eslint-disable no-console */
8307  if (typeof console !== 'undefined' && typeof console.error === 'function') {
8308    console.error(message);
8309  }
8310  /* eslint-enable no-console */
8311
8312
8313  try {
8314    // This error was thrown as a convenience so that if you enable
8315    // "break on all exceptions" in your console,
8316    // it would pause the execution at this line.
8317    throw new Error(message);
8318  } catch (e) {} // eslint-disable-line no-empty
8319
8320}
8321
8322function getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {
8323  var reducerKeys = Object.keys(reducers);
8324  var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';
8325
8326  if (reducerKeys.length === 0) {
8327    return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';
8328  }
8329
8330  if (!isPlainObject(inputState)) {
8331    return "The " + argumentName + " has unexpected type of \"" + kindOf(inputState) + "\". Expected argument to be an object with the following " + ("keys: \"" + reducerKeys.join('", "') + "\"");
8332  }
8333
8334  var unexpectedKeys = Object.keys(inputState).filter(function (key) {
8335    return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];
8336  });
8337  unexpectedKeys.forEach(function (key) {
8338    unexpectedKeyCache[key] = true;
8339  });
8340  if (action && action.type === ActionTypes.REPLACE) return;
8341
8342  if (unexpectedKeys.length > 0) {
8343    return "Unexpected " + (unexpectedKeys.length > 1 ? 'keys' : 'key') + " " + ("\"" + unexpectedKeys.join('", "') + "\" found in " + argumentName + ". ") + "Expected to find one of the known reducer keys instead: " + ("\"" + reducerKeys.join('", "') + "\". Unexpected keys will be ignored.");
8344  }
8345}
8346
8347function assertReducerShape(reducers) {
8348  Object.keys(reducers).forEach(function (key) {
8349    var reducer = reducers[key];
8350    var initialState = reducer(undefined, {
8351      type: ActionTypes.INIT
8352    });
8353
8354    if (typeof initialState === 'undefined') {
8355      throw new Error(  true ? formatProdErrorMessage(12) : 0);
8356    }
8357
8358    if (typeof reducer(undefined, {
8359      type: ActionTypes.PROBE_UNKNOWN_ACTION()
8360    }) === 'undefined') {
8361      throw new Error(  true ? formatProdErrorMessage(13) : 0);
8362    }
8363  });
8364}
8365/**
8366 * Turns an object whose values are different reducer functions, into a single
8367 * reducer function. It will call every child reducer, and gather their results
8368 * into a single state object, whose keys correspond to the keys of the passed
8369 * reducer functions.
8370 *
8371 * @param {Object} reducers An object whose values correspond to different
8372 * reducer functions that need to be combined into one. One handy way to obtain
8373 * it is to use ES6 `import * as reducers` syntax. The reducers may never return
8374 * undefined for any action. Instead, they should return their initial state
8375 * if the state passed to them was undefined, and the current state for any
8376 * unrecognized action.
8377 *
8378 * @returns {Function} A reducer function that invokes every reducer inside the
8379 * passed object, and builds a state object with the same shape.
8380 */
8381
8382
8383function combineReducers(reducers) {
8384  var reducerKeys = Object.keys(reducers);
8385  var finalReducers = {};
8386
8387  for (var i = 0; i < reducerKeys.length; i++) {
8388    var key = reducerKeys[i];
8389
8390    if (false) {}
8391
8392    if (typeof reducers[key] === 'function') {
8393      finalReducers[key] = reducers[key];
8394    }
8395  }
8396
8397  var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same
8398  // keys multiple times.
8399
8400  var unexpectedKeyCache;
8401
8402  if (false) {}
8403
8404  var shapeAssertionError;
8405
8406  try {
8407    assertReducerShape(finalReducers);
8408  } catch (e) {
8409    shapeAssertionError = e;
8410  }
8411
8412  return function combination(state, action) {
8413    if (state === void 0) {
8414      state = {};
8415    }
8416
8417    if (shapeAssertionError) {
8418      throw shapeAssertionError;
8419    }
8420
8421    if (false) { var warningMessage; }
8422
8423    var hasChanged = false;
8424    var nextState = {};
8425
8426    for (var _i = 0; _i < finalReducerKeys.length; _i++) {
8427      var _key = finalReducerKeys[_i];
8428      var reducer = finalReducers[_key];
8429      var previousStateForKey = state[_key];
8430      var nextStateForKey = reducer(previousStateForKey, action);
8431
8432      if (typeof nextStateForKey === 'undefined') {
8433        var actionType = action && action.type;
8434        throw new Error(  true ? formatProdErrorMessage(14) : 0);
8435      }
8436
8437      nextState[_key] = nextStateForKey;
8438      hasChanged = hasChanged || nextStateForKey !== previousStateForKey;
8439    }
8440
8441    hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;
8442    return hasChanged ? nextState : state;
8443  };
8444}
8445
8446function bindActionCreator(actionCreator, dispatch) {
8447  return function () {
8448    return dispatch(actionCreator.apply(this, arguments));
8449  };
8450}
8451/**
8452 * Turns an object whose values are action creators, into an object with the
8453 * same keys, but with every function wrapped into a `dispatch` call so they
8454 * may be invoked directly. This is just a convenience method, as you can call
8455 * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.
8456 *
8457 * For convenience, you can also pass an action creator as the first argument,
8458 * and get a dispatch wrapped function in return.
8459 *
8460 * @param {Function|Object} actionCreators An object whose values are action
8461 * creator functions. One handy way to obtain it is to use ES6 `import * as`
8462 * syntax. You may also pass a single function.
8463 *
8464 * @param {Function} dispatch The `dispatch` function available on your Redux
8465 * store.
8466 *
8467 * @returns {Function|Object} The object mimicking the original object, but with
8468 * every action creator wrapped into the `dispatch` call. If you passed a
8469 * function as `actionCreators`, the return value will also be a single
8470 * function.
8471 */
8472
8473
8474function bindActionCreators(actionCreators, dispatch) {
8475  if (typeof actionCreators === 'function') {
8476    return bindActionCreator(actionCreators, dispatch);
8477  }
8478
8479  if (typeof actionCreators !== 'object' || actionCreators === null) {
8480    throw new Error(  true ? formatProdErrorMessage(16) : 0);
8481  }
8482
8483  var boundActionCreators = {};
8484
8485  for (var key in actionCreators) {
8486    var actionCreator = actionCreators[key];
8487
8488    if (typeof actionCreator === 'function') {
8489      boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);
8490    }
8491  }
8492
8493  return boundActionCreators;
8494}
8495
8496/**
8497 * Composes single-argument functions from right to left. The rightmost
8498 * function can take multiple arguments as it provides the signature for
8499 * the resulting composite function.
8500 *
8501 * @param {...Function} funcs The functions to compose.
8502 * @returns {Function} A function obtained by composing the argument functions
8503 * from right to left. For example, compose(f, g, h) is identical to doing
8504 * (...args) => f(g(h(...args))).
8505 */
8506function compose() {
8507  for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {
8508    funcs[_key] = arguments[_key];
8509  }
8510
8511  if (funcs.length === 0) {
8512    return function (arg) {
8513      return arg;
8514    };
8515  }
8516
8517  if (funcs.length === 1) {
8518    return funcs[0];
8519  }
8520
8521  return funcs.reduce(function (a, b) {
8522    return function () {
8523      return a(b.apply(void 0, arguments));
8524    };
8525  });
8526}
8527
8528/**
8529 * Creates a store enhancer that applies middleware to the dispatch method
8530 * of the Redux store. This is handy for a variety of tasks, such as expressing
8531 * asynchronous actions in a concise manner, or logging every action payload.
8532 *
8533 * See `redux-thunk` package as an example of the Redux middleware.
8534 *
8535 * Because middleware is potentially asynchronous, this should be the first
8536 * store enhancer in the composition chain.
8537 *
8538 * Note that each middleware will be given the `dispatch` and `getState` functions
8539 * as named arguments.
8540 *
8541 * @param {...Function} middlewares The middleware chain to be applied.
8542 * @returns {Function} A store enhancer applying the middleware.
8543 */
8544
8545function applyMiddleware() {
8546  for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {
8547    middlewares[_key] = arguments[_key];
8548  }
8549
8550  return function (createStore) {
8551    return function () {
8552      var store = createStore.apply(void 0, arguments);
8553
8554      var _dispatch = function dispatch() {
8555        throw new Error(  true ? formatProdErrorMessage(15) : 0);
8556      };
8557
8558      var middlewareAPI = {
8559        getState: store.getState,
8560        dispatch: function dispatch() {
8561          return _dispatch.apply(void 0, arguments);
8562        }
8563      };
8564      var chain = middlewares.map(function (middleware) {
8565        return middleware(middlewareAPI);
8566      });
8567      _dispatch = compose.apply(void 0, chain)(store.dispatch);
8568      return _objectSpread2(_objectSpread2({}, store), {}, {
8569        dispatch: _dispatch
8570      });
8571    };
8572  };
8573}
8574
8575/*
8576 * This is a dummy function to check if the function name has been altered by minification.
8577 * If the function has been minified and NODE_ENV !== 'production', warn the user.
8578 */
8579
8580function isCrushed() {}
8581
8582if (false) {}
8583
8584
8585
8586
8587/***/ })
8588
8589/******/ 	});
8590/************************************************************************/
8591/******/ 	// The module cache
8592/******/ 	var __webpack_module_cache__ = {};
8593/******/ 	
8594/******/ 	// The require function
8595/******/ 	function __nested_webpack_require_204296__(moduleId) {
8596/******/ 		// Check if module is in cache
8597/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
8598/******/ 		if (cachedModule !== undefined) {
8599/******/ 			return cachedModule.exports;
8600/******/ 		}
8601/******/ 		// Create a new module (and put it into the cache)
8602/******/ 		var module = __webpack_module_cache__[moduleId] = {
8603/******/ 			// no module.id needed
8604/******/ 			// no module.loaded needed
8605/******/ 			exports: {}
8606/******/ 		};
8607/******/ 	
8608/******/ 		// Execute the module function
8609/******/ 		__webpack_modules__[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_204296__);
8610/******/ 	
8611/******/ 		// Return the exports of the module
8612/******/ 		return module.exports;
8613/******/ 	}
8614/******/ 	
8615/************************************************************************/
8616/******/ 	/* webpack/runtime/compat get default export */
8617/******/ 	!function() {
8618/******/ 		// getDefaultExport function for compatibility with non-harmony modules
8619/******/ 		__nested_webpack_require_204296__.n = function(module) {
8620/******/ 			var getter = module && module.__esModule ?
8621/******/ 				function() { return module['default']; } :
8622/******/ 				function() { return module; };
8623/******/ 			__nested_webpack_require_204296__.d(getter, { a: getter });
8624/******/ 			return getter;
8625/******/ 		};
8626/******/ 	}();
8627/******/ 	
8628/******/ 	/* webpack/runtime/define property getters */
8629/******/ 	!function() {
8630/******/ 		// define getter functions for harmony exports
8631/******/ 		__nested_webpack_require_204296__.d = function(exports, definition) {
8632/******/ 			for(var key in definition) {
8633/******/ 				if(__nested_webpack_require_204296__.o(definition, key) && !__nested_webpack_require_204296__.o(exports, key)) {
8634/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
8635/******/ 				}
8636/******/ 			}
8637/******/ 		};
8638/******/ 	}();
8639/******/ 	
8640/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
8641/******/ 	!function() {
8642/******/ 		__nested_webpack_require_204296__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
8643/******/ 	}();
8644/******/ 	
8645/******/ 	/* webpack/runtime/make namespace object */
8646/******/ 	!function() {
8647/******/ 		// define __esModule on exports
8648/******/ 		__nested_webpack_require_204296__.r = function(exports) {
8649/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
8650/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
8651/******/ 			}
8652/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
8653/******/ 		};
8654/******/ 	}();
8655/******/ 	
8656/************************************************************************/
8657var __webpack_exports__ = {};
8658// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
8659!function() {
8660/* harmony import */ var _scripts_choices__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_204296__(373);
8661/* harmony import */ var _scripts_choices__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__nested_webpack_require_204296__.n(_scripts_choices__WEBPACK_IMPORTED_MODULE_0__);
8662/* harmony import */ var _scripts_interfaces__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_204296__(187);
8663/* harmony import */ var _scripts_interfaces__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nested_webpack_require_204296__.n(_scripts_interfaces__WEBPACK_IMPORTED_MODULE_1__);
8664/* harmony import */ var _scripts_constants__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_204296__(883);
8665/* harmony import */ var _scripts_defaults__WEBPACK_IMPORTED_MODULE_3__ = __nested_webpack_require_204296__(789);
8666/* harmony import */ var _scripts_templates__WEBPACK_IMPORTED_MODULE_4__ = __nested_webpack_require_204296__(686);
8667
8668
8669
8670
8671
8672
8673
8674/* harmony default export */ __webpack_exports__["default"] = ((_scripts_choices__WEBPACK_IMPORTED_MODULE_0___default()));
8675
8676}();
8677__webpack_exports__ = __webpack_exports__["default"];
8678/******/ 	return __webpack_exports__;
8679/******/ })()
8680;
8681});
8682
8683/***/ }),
8684
8685/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./assets/css/main.css":
8686/*!*********************************************************************************************************************************************************************!*\
8687  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./assets/css/main.css ***!
8688  \*********************************************************************************************************************************************************************/
8689/***/ ((module, __webpack_exports__, __webpack_require__) => {
8690
8691"use strict";
8692__webpack_require__.r(__webpack_exports__);
8693/* harmony export */ __webpack_require__.d(__webpack_exports__, {
8694/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
8695/* harmony export */ });
8696/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/sourceMaps.js */ "./node_modules/css-loader/dist/runtime/sourceMaps.js");
8697/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
8698/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
8699/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
8700/* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/getUrl.js */ "./node_modules/css-loader/dist/runtime/getUrl.js");
8701/* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__);
8702// Imports
8703
8704
8705
8706var ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __webpack_require__(/*! data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjMDAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg== */ "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjMDAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg=="), __webpack_require__.b);
8707var ___CSS_LOADER_URL_IMPORT_1___ = new URL(/* asset import */ __webpack_require__(/*! data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg== */ "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg=="), __webpack_require__.b);
8708var ___CSS_LOADER_URL_IMPORT_2___ = new URL(/* asset import */ __webpack_require__(/*! ../images/down-chevron-white.svg */ "./assets/images/down-chevron-white.svg"), __webpack_require__.b);
8709var ___CSS_LOADER_URL_IMPORT_3___ = new URL(/* asset import */ __webpack_require__(/*! ../images/spinner.svg */ "./assets/images/spinner.svg"), __webpack_require__.b);
8710var ___CSS_LOADER_URL_IMPORT_4___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-BoldItalic.eot */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.eot"), __webpack_require__.b);
8711var ___CSS_LOADER_URL_IMPORT_5___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-BoldItalic.woff2 */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.woff2"), __webpack_require__.b);
8712var ___CSS_LOADER_URL_IMPORT_6___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-BoldItalic.woff */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.woff"), __webpack_require__.b);
8713var ___CSS_LOADER_URL_IMPORT_7___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-BoldItalic.ttf */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.ttf"), __webpack_require__.b);
8714var ___CSS_LOADER_URL_IMPORT_8___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-BoldItalic.svg */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.svg"), __webpack_require__.b);
8715var ___CSS_LOADER_URL_IMPORT_9___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Bold.eot */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.eot"), __webpack_require__.b);
8716var ___CSS_LOADER_URL_IMPORT_10___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Bold.woff2 */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.woff2"), __webpack_require__.b);
8717var ___CSS_LOADER_URL_IMPORT_11___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Bold.woff */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.woff"), __webpack_require__.b);
8718var ___CSS_LOADER_URL_IMPORT_12___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Bold.ttf */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.ttf"), __webpack_require__.b);
8719var ___CSS_LOADER_URL_IMPORT_13___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Bold.svg */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.svg"), __webpack_require__.b);
8720var ___CSS_LOADER_URL_IMPORT_14___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue.eot */ "./assets/css/typography/fonts/dehinted-HelveticaNeue.eot"), __webpack_require__.b);
8721var ___CSS_LOADER_URL_IMPORT_15___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue.woff2 */ "./assets/css/typography/fonts/dehinted-HelveticaNeue.woff2"), __webpack_require__.b);
8722var ___CSS_LOADER_URL_IMPORT_16___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue.woff */ "./assets/css/typography/fonts/dehinted-HelveticaNeue.woff"), __webpack_require__.b);
8723var ___CSS_LOADER_URL_IMPORT_17___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue.ttf */ "./assets/css/typography/fonts/dehinted-HelveticaNeue.ttf"), __webpack_require__.b);
8724var ___CSS_LOADER_URL_IMPORT_18___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue.svg */ "./assets/css/typography/fonts/dehinted-HelveticaNeue.svg"), __webpack_require__.b);
8725var ___CSS_LOADER_URL_IMPORT_19___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-CondensedBlack.eot */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.eot"), __webpack_require__.b);
8726var ___CSS_LOADER_URL_IMPORT_20___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-CondensedBlack.woff2 */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.woff2"), __webpack_require__.b);
8727var ___CSS_LOADER_URL_IMPORT_21___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-CondensedBlack.woff */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.woff"), __webpack_require__.b);
8728var ___CSS_LOADER_URL_IMPORT_22___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-CondensedBlack.ttf */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.ttf"), __webpack_require__.b);
8729var ___CSS_LOADER_URL_IMPORT_23___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-CondensedBlack.svg */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.svg"), __webpack_require__.b);
8730var ___CSS_LOADER_URL_IMPORT_24___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Light.eot */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.eot"), __webpack_require__.b);
8731var ___CSS_LOADER_URL_IMPORT_25___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Light.woff2 */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.woff2"), __webpack_require__.b);
8732var ___CSS_LOADER_URL_IMPORT_26___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Light.woff */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.woff"), __webpack_require__.b);
8733var ___CSS_LOADER_URL_IMPORT_27___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Light.ttf */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.ttf"), __webpack_require__.b);
8734var ___CSS_LOADER_URL_IMPORT_28___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Light.svg */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.svg"), __webpack_require__.b);
8735var ___CSS_LOADER_URL_IMPORT_29___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-CondensedBold.eot */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.eot"), __webpack_require__.b);
8736var ___CSS_LOADER_URL_IMPORT_30___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-CondensedBold.woff2 */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.woff2"), __webpack_require__.b);
8737var ___CSS_LOADER_URL_IMPORT_31___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-CondensedBold.woff */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.woff"), __webpack_require__.b);
8738var ___CSS_LOADER_URL_IMPORT_32___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-CondensedBold.ttf */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.ttf"), __webpack_require__.b);
8739var ___CSS_LOADER_URL_IMPORT_33___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-CondensedBold.svg */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.svg"), __webpack_require__.b);
8740var ___CSS_LOADER_URL_IMPORT_34___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-LightItalic.eot */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.eot"), __webpack_require__.b);
8741var ___CSS_LOADER_URL_IMPORT_35___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-LightItalic.woff2 */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.woff2"), __webpack_require__.b);
8742var ___CSS_LOADER_URL_IMPORT_36___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-LightItalic.woff */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.woff"), __webpack_require__.b);
8743var ___CSS_LOADER_URL_IMPORT_37___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-LightItalic.ttf */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.ttf"), __webpack_require__.b);
8744var ___CSS_LOADER_URL_IMPORT_38___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-LightItalic.svg */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.svg"), __webpack_require__.b);
8745var ___CSS_LOADER_URL_IMPORT_39___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Medium.eot */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.eot"), __webpack_require__.b);
8746var ___CSS_LOADER_URL_IMPORT_40___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Medium.woff2 */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.woff2"), __webpack_require__.b);
8747var ___CSS_LOADER_URL_IMPORT_41___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Medium.woff */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.woff"), __webpack_require__.b);
8748var ___CSS_LOADER_URL_IMPORT_42___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Medium.ttf */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.ttf"), __webpack_require__.b);
8749var ___CSS_LOADER_URL_IMPORT_43___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Medium.svg */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.svg"), __webpack_require__.b);
8750var ___CSS_LOADER_URL_IMPORT_44___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-MediumItalic.eot */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.eot"), __webpack_require__.b);
8751var ___CSS_LOADER_URL_IMPORT_45___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-MediumItalic.woff2 */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.woff2"), __webpack_require__.b);
8752var ___CSS_LOADER_URL_IMPORT_46___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-MediumItalic.woff */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.woff"), __webpack_require__.b);
8753var ___CSS_LOADER_URL_IMPORT_47___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-MediumItalic.ttf */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.ttf"), __webpack_require__.b);
8754var ___CSS_LOADER_URL_IMPORT_48___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-MediumItalic.svg */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.svg"), __webpack_require__.b);
8755var ___CSS_LOADER_URL_IMPORT_49___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Italic.eot */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.eot"), __webpack_require__.b);
8756var ___CSS_LOADER_URL_IMPORT_50___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Italic.woff2 */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.woff2"), __webpack_require__.b);
8757var ___CSS_LOADER_URL_IMPORT_51___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Italic.woff */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.woff"), __webpack_require__.b);
8758var ___CSS_LOADER_URL_IMPORT_52___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Italic.ttf */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.ttf"), __webpack_require__.b);
8759var ___CSS_LOADER_URL_IMPORT_53___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Italic.svg */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.svg"), __webpack_require__.b);
8760var ___CSS_LOADER_URL_IMPORT_54___ = new URL(/* asset import */ __webpack_require__(/*! ../images/point.png */ "./assets/images/point.png"), __webpack_require__.b);
8761var ___CSS_LOADER_URL_IMPORT_55___ = new URL(/* asset import */ __webpack_require__(/*! ../../../../../../../../../../assets/images/Footer-decal.svg */ "./assets/images/Footer-decal.svg"), __webpack_require__.b);
8762var ___CSS_LOADER_URL_IMPORT_56___ = new URL(/* asset import */ __webpack_require__(/*! data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feGaussianBlur stdDeviation="8" /></filter></svg>#filter */ "data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\"><filter id=\"filter\"><feGaussianBlur stdDeviation=\"8\" /></filter></svg>#filter"), __webpack_require__.b);
8763var ___CSS_LOADER_URL_IMPORT_57___ = new URL(/* asset import */ __webpack_require__(/*! ../images/red-arrow-right.svg */ "./assets/images/red-arrow-right.svg"), __webpack_require__.b);
8764var ___CSS_LOADER_URL_IMPORT_58___ = new URL(/* asset import */ __webpack_require__(/*! ../images/blue-arrow-right.svg */ "./assets/images/blue-arrow-right.svg"), __webpack_require__.b);
8765var ___CSS_LOADER_URL_IMPORT_59___ = new URL(/* asset import */ __webpack_require__(/*! ../images/down-chevron.svg */ "./assets/images/down-chevron.svg"), __webpack_require__.b);
8766var ___CSS_LOADER_URL_IMPORT_60___ = new URL(/* asset import */ __webpack_require__(/*! ../images/search.svg */ "./assets/images/search.svg"), __webpack_require__.b);
8767var ___CSS_LOADER_URL_IMPORT_61___ = new URL(/* asset import */ __webpack_require__(/*! ../images/special_underline.svg */ "./assets/images/special_underline.svg"), __webpack_require__.b);
8768var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
8769var ___CSS_LOADER_URL_REPLACEMENT_0___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___);
8770var ___CSS_LOADER_URL_REPLACEMENT_1___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_1___);
8771var ___CSS_LOADER_URL_REPLACEMENT_2___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_2___);
8772var ___CSS_LOADER_URL_REPLACEMENT_3___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_3___);
8773var ___CSS_LOADER_URL_REPLACEMENT_4___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_4___);
8774var ___CSS_LOADER_URL_REPLACEMENT_5___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_4___, { hash: "?#iefix" });
8775var ___CSS_LOADER_URL_REPLACEMENT_6___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_5___);
8776var ___CSS_LOADER_URL_REPLACEMENT_7___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_6___);
8777var ___CSS_LOADER_URL_REPLACEMENT_8___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_7___);
8778var ___CSS_LOADER_URL_REPLACEMENT_9___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_8___, { hash: "#HelveticaNeue-BoldItalic" });
8779var ___CSS_LOADER_URL_REPLACEMENT_10___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_9___);
8780var ___CSS_LOADER_URL_REPLACEMENT_11___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_9___, { hash: "?#iefix" });
8781var ___CSS_LOADER_URL_REPLACEMENT_12___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_10___);
8782var ___CSS_LOADER_URL_REPLACEMENT_13___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_11___);
8783var ___CSS_LOADER_URL_REPLACEMENT_14___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_12___);
8784var ___CSS_LOADER_URL_REPLACEMENT_15___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_13___, { hash: "#HelveticaNeue-Bold" });
8785var ___CSS_LOADER_URL_REPLACEMENT_16___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_14___);
8786var ___CSS_LOADER_URL_REPLACEMENT_17___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_14___, { hash: "?#iefix" });
8787var ___CSS_LOADER_URL_REPLACEMENT_18___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_15___);
8788var ___CSS_LOADER_URL_REPLACEMENT_19___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_16___);
8789var ___CSS_LOADER_URL_REPLACEMENT_20___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_17___);
8790var ___CSS_LOADER_URL_REPLACEMENT_21___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_18___, { hash: "#HelveticaNeue" });
8791var ___CSS_LOADER_URL_REPLACEMENT_22___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_19___);
8792var ___CSS_LOADER_URL_REPLACEMENT_23___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_19___, { hash: "?#iefix" });
8793var ___CSS_LOADER_URL_REPLACEMENT_24___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_20___);
8794var ___CSS_LOADER_URL_REPLACEMENT_25___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_21___);
8795var ___CSS_LOADER_URL_REPLACEMENT_26___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_22___);
8796var ___CSS_LOADER_URL_REPLACEMENT_27___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_23___, { hash: "#HelveticaNeue-CondensedBlack" });
8797var ___CSS_LOADER_URL_REPLACEMENT_28___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_24___);
8798var ___CSS_LOADER_URL_REPLACEMENT_29___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_24___, { hash: "?#iefix" });
8799var ___CSS_LOADER_URL_REPLACEMENT_30___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_25___);
8800var ___CSS_LOADER_URL_REPLACEMENT_31___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_26___);
8801var ___CSS_LOADER_URL_REPLACEMENT_32___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_27___);
8802var ___CSS_LOADER_URL_REPLACEMENT_33___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_28___, { hash: "#HelveticaNeue-Light" });
8803var ___CSS_LOADER_URL_REPLACEMENT_34___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_29___);
8804var ___CSS_LOADER_URL_REPLACEMENT_35___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_29___, { hash: "?#iefix" });
8805var ___CSS_LOADER_URL_REPLACEMENT_36___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_30___);
8806var ___CSS_LOADER_URL_REPLACEMENT_37___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_31___);
8807var ___CSS_LOADER_URL_REPLACEMENT_38___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_32___);
8808var ___CSS_LOADER_URL_REPLACEMENT_39___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_33___, { hash: "#HelveticaNeue-CondensedBold" });
8809var ___CSS_LOADER_URL_REPLACEMENT_40___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_34___);
8810var ___CSS_LOADER_URL_REPLACEMENT_41___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_34___, { hash: "?#iefix" });
8811var ___CSS_LOADER_URL_REPLACEMENT_42___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_35___);
8812var ___CSS_LOADER_URL_REPLACEMENT_43___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_36___);
8813var ___CSS_LOADER_URL_REPLACEMENT_44___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_37___);
8814var ___CSS_LOADER_URL_REPLACEMENT_45___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_38___, { hash: "#HelveticaNeue-LightItalic" });
8815var ___CSS_LOADER_URL_REPLACEMENT_46___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_39___);
8816var ___CSS_LOADER_URL_REPLACEMENT_47___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_39___, { hash: "?#iefix" });
8817var ___CSS_LOADER_URL_REPLACEMENT_48___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_40___);
8818var ___CSS_LOADER_URL_REPLACEMENT_49___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_41___);
8819var ___CSS_LOADER_URL_REPLACEMENT_50___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_42___);
8820var ___CSS_LOADER_URL_REPLACEMENT_51___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_43___, { hash: "#HelveticaNeue-Medium" });
8821var ___CSS_LOADER_URL_REPLACEMENT_52___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_44___);
8822var ___CSS_LOADER_URL_REPLACEMENT_53___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_44___, { hash: "?#iefix" });
8823var ___CSS_LOADER_URL_REPLACEMENT_54___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_45___);
8824var ___CSS_LOADER_URL_REPLACEMENT_55___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_46___);
8825var ___CSS_LOADER_URL_REPLACEMENT_56___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_47___);
8826var ___CSS_LOADER_URL_REPLACEMENT_57___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_48___, { hash: "#HelveticaNeue-MediumItalic" });
8827var ___CSS_LOADER_URL_REPLACEMENT_58___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_49___);
8828var ___CSS_LOADER_URL_REPLACEMENT_59___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_49___, { hash: "?#iefix" });
8829var ___CSS_LOADER_URL_REPLACEMENT_60___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_50___);
8830var ___CSS_LOADER_URL_REPLACEMENT_61___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_51___);
8831var ___CSS_LOADER_URL_REPLACEMENT_62___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_52___);
8832var ___CSS_LOADER_URL_REPLACEMENT_63___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_53___, { hash: "#HelveticaNeue-Italic" });
8833var ___CSS_LOADER_URL_REPLACEMENT_64___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_54___);
8834var ___CSS_LOADER_URL_REPLACEMENT_65___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_55___);
8835var ___CSS_LOADER_URL_REPLACEMENT_66___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_56___);
8836var ___CSS_LOADER_URL_REPLACEMENT_67___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_57___);
8837var ___CSS_LOADER_URL_REPLACEMENT_68___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_58___);
8838var ___CSS_LOADER_URL_REPLACEMENT_69___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_59___);
8839var ___CSS_LOADER_URL_REPLACEMENT_70___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_60___);
8840var ___CSS_LOADER_URL_REPLACEMENT_71___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_61___);
8841// Module
8842___CSS_LOADER_EXPORT___.push([module.id, "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n   ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n  line-height: 1.15; /* 1 */\n  -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n   ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n  margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n  display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\n\n/* Grouping content\n   ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n  box-sizing: content-box; /* 1 */\n  height: 0; /* 1 */\n  overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n  font-family: monospace, monospace; /* 1 */\n  font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n   ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n  background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n  border-bottom: none; /* 1 */\n  text-decoration: underline; /* 2 */\n  -webkit-text-decoration: underline dotted;\n          text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n  font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace; /* 1 */\n  font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n  font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline;\n}\n\nsub {\n  bottom: -0.25em;\n}\n\nsup {\n  top: -0.5em;\n}\n\n/* Embedded content\n   ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n  border-style: none;\n}\n\n/* Forms\n   ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit; /* 1 */\n  font-size: 100%; /* 1 */\n  line-height: 1.15; /* 1 */\n  margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n  overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n  text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  border-style: none;\n  padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n  outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n  padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n *    `fieldset` elements in all browsers.\n */\n\nlegend {\n  box-sizing: border-box; /* 1 */\n  color: inherit; /* 2 */\n  display: table; /* 1 */\n  max-width: 100%; /* 1 */\n  padding: 0; /* 3 */\n  white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n  vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n  overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n  box-sizing: border-box; /* 1 */\n  padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n  -webkit-appearance: textfield; /* 1 */\n  outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n  -webkit-appearance: button; /* 1 */\n  font: inherit; /* 2 */\n}\n\n/* Interactive\n   ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n  display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n  display: list-item;\n}\n\n/* Misc\n   ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n  display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n  display: none;\n}\n\n/*Media Queries*/\n\n:root {\n  /*fonts*/\n}\n\n@mixin until($size) {\n    @media screen and (max-width: $size) {\n        @content;\n    }\n}\n\n@mixin from($size) {\n    @media screen and (min-width: $size) {\n        @content;\n    }\n}\n\n/* vendor*/\n\n/*glidejs (slider)*/\n\n.glide {\n  position: relative;\n  width: 100%;\n  box-sizing: border-box;\n}\n\n.glide * {\n  box-sizing: inherit;\n}\n\n.glide__track {\n  overflow: hidden;\n}\n\n.glide__slides {\n  position: relative;\n  width: 100%;\n  list-style: none;\n  backface-visibility: hidden;\n  transform-style: preserve-3d;\n  touch-action: pan-Y;\n  overflow: hidden;\n  margin: 0;\n  padding: 0;\n  white-space: nowrap;\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  flex-wrap: nowrap;\n  will-change: transform;\n}\n\n.glide__slides--dragging {\n  -webkit-user-select: none;\n     -moz-user-select: none;\n      -ms-user-select: none;\n          user-select: none;\n}\n\n.glide__slide {\n  width: 100%;\n  height: 100%;\n  flex-shrink: 0;\n  white-space: normal;\n  -webkit-user-select: none;\n     -moz-user-select: none;\n      -ms-user-select: none;\n          user-select: none;\n  -webkit-touch-callout: none;\n  -webkit-tap-highlight-color: transparent;\n}\n\n.glide__slide a {\n  -webkit-user-select: none;\n          user-select: none;\n  -webkit-user-drag: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n}\n\n.glide__arrows {\n  -webkit-touch-callout: none;\n  -webkit-user-select: none;\n     -moz-user-select: none;\n      -ms-user-select: none;\n          user-select: none;\n}\n\n.glide__bullets {\n  -webkit-touch-callout: none;\n  -webkit-user-select: none;\n     -moz-user-select: none;\n      -ms-user-select: none;\n          user-select: none;\n}\n\n.glide--rtl {\n  direction: rtl;\n}\n\n.glide__arrow {\n  position: absolute;\n  display: block;\n  top: 50%;\n  z-index: 2;\n  color: white;\n  text-transform: uppercase;\n  padding: 9px 12px;\n  background-color: transparent;\n  border: 2px solid rgba(255, 255, 255, .5);\n  border-radius: 4px;\n  box-shadow: 0 0.25em 0.5em 0 rgba(0, 0, 0, .1);\n  text-shadow: 0 0.25em 0.5em rgba(0, 0, 0, .1);\n  opacity: 1;\n  cursor: pointer;\n  transition: opacity 150ms ease, border 300ms ease-in-out;\n  transform: translateY(-50%);\n  line-height: 1;\n}\n\n.glide__arrow:focus {\n  outline: none;\n}\n\n.glide__arrow:hover {\n  border-color: white;\n}\n\n.glide__arrow--left {\n  left: 2em;\n}\n\n.glide__arrow--right {\n  right: 2em;\n}\n\n.glide__arrow--disabled {\n  opacity: 0.33;\n}\n\n.glide__bullets {\n  position: absolute;\n  z-index: 2;\n  bottom: 2em;\n  left: 50%;\n  display: -webkit-inline-box;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  list-style: none;\n  transform: translateX(-50%);\n}\n\n.glide__bullet {\n  background-color: rgba(255, 255, 255, .5);\n  width: 9px;\n  height: 9px;\n  padding: 0;\n  border-radius: 50%;\n  border: 2px solid transparent;\n  transition: all 300ms ease-in-out;\n  cursor: pointer;\n  line-height: 0;\n  box-shadow: 0 0.25em 0.5em 0 rgba(0, 0, 0, .1);\n  margin: 0 0.25em;\n}\n\n.glide__bullet:focus {\n  outline: none;\n}\n\n.glide__bullet:hover, .glide__bullet:focus {\n  border: 2px solid white;\n  background-color: rgba(255, 255, 255, .5);\n}\n\n.glide__bullet--active {\n  background-color: white;\n}\n\n.glide--swipeable {\n  cursor: grab;\n  cursor: -webkit-grab;\n}\n\n.glide--dragging {\n  cursor: grabbing;\n  cursor: -webkit-grabbing;\n}\n\n/*choices (select box)*/\n\n/*@import \"../../node_modules/choices.js/public/assets/styles/base.min\";*/\n\n.choices{position:relative;overflow:hidden;margin-bottom:24px;font-size:16px}\n\n.choices:focus{outline:0}\n\n.choices:last-child{margin-bottom:0}\n\n.choices.is-open{overflow:visible}\n\n.choices.is-disabled .choices__inner,.choices.is-disabled .choices__input{background-color:#eaeaea;cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}\n\n.choices.is-disabled .choices__item{cursor:not-allowed}\n\n.choices [hidden]{display:none!important}\n\n.choices[data-type*=select-one]{cursor:pointer}\n\n.choices[data-type*=select-one] .choices__inner{padding-bottom:7.5px}\n\n.choices[data-type*=select-one] .choices__input{display:block;width:100%;padding:10px;border-bottom:1px solid #ddd;background-color:#fff;margin:0}\n\n.choices[data-type*=select-one] .choices__button{background-image:url(" + ___CSS_LOADER_URL_REPLACEMENT_0___ + ");padding:0;background-size:8px;position:absolute;top:50%;right:0;margin-top:-10px;margin-right:25px;height:20px;width:20px;border-radius:10em;opacity:.25}\n\n.choices[data-type*=select-one] .choices__button:focus,.choices[data-type*=select-one] .choices__button:hover{opacity:1}\n\n.choices[data-type*=select-one] .choices__button:focus{box-shadow:0 0 0 2px #00bcd4}\n\n.choices[data-type*=select-one] .choices__item[data-value=\"\"] .choices__button{display:none}\n\n.choices[data-type*=select-one]::after{content:\"\";height:0;width:0;border-style:solid;border-color:#333 transparent transparent;border-width:5px;position:absolute;right:11.5px;top:50%;margin-top:-2.5px;pointer-events:none}\n\n.choices[data-type*=select-one].is-open::after{border-color:transparent transparent #333;margin-top:-7.5px}\n\n.choices[data-type*=select-one][dir=rtl]::after{left:11.5px;right:auto}\n\n.choices[data-type*=select-one][dir=rtl] .choices__button{right:auto;left:0;margin-left:25px;margin-right:0}\n\n.choices[data-type*=select-multiple] .choices__inner,.choices[data-type*=text] .choices__inner{cursor:text}\n\n.choices[data-type*=select-multiple] .choices__button,.choices[data-type*=text] .choices__button{position:relative;display:inline-block;margin:0-4px 0 8px;padding-left:16px;border-left:1px solid #008fa1;background-image:url(" + ___CSS_LOADER_URL_REPLACEMENT_1___ + ");background-size:8px;width:8px;line-height:1;opacity:.75;border-radius:0}\n\n.choices[data-type*=select-multiple] .choices__button:focus,.choices[data-type*=select-multiple] .choices__button:hover,.choices[data-type*=text] .choices__button:focus,.choices[data-type*=text] .choices__button:hover{opacity:1}\n\n.choices__inner{display:inline-block;vertical-align:top;width:100%;background-color:#f9f9f9;padding:7.5px 7.5px 3.75px;border:1px solid #ddd;border-radius:2.5px;font-size:14px;min-height:44px;overflow:hidden}\n\n.is-focused .choices__inner,.is-open .choices__inner{border-color:#b7b7b7}\n\n.is-open .choices__inner{border-radius:2.5px 2.5px 0 0}\n\n.is-flipped.is-open .choices__inner{border-radius:0 0 2.5px 2.5px}\n\n.choices__list{margin:0;padding-left:0;list-style:none}\n\n.choices__list--single{display:inline-block;padding:4px 16px 4px 4px;width:100%}\n\n[dir=rtl] .choices__list--single{padding-right:4px;padding-left:16px}\n\n.choices__list--single .choices__item{width:100%}\n\n.choices__list--multiple{display:inline}\n\n.choices__list--multiple .choices__item{display:inline-block;vertical-align:middle;border-radius:20px;padding:4px 10px;font-size:12px;font-weight:500;margin-right:3.75px;margin-bottom:3.75px;background-color:#00bcd4;border:1px solid #00a5bb;color:#fff;word-break:break-all;box-sizing:border-box}\n\n.choices__list--multiple .choices__item[data-deletable]{padding-right:5px}\n\n[dir=rtl] .choices__list--multiple .choices__item{margin-right:0;margin-left:3.75px}\n\n.choices__list--multiple .choices__item.is-highlighted{background-color:#00a5bb;border:1px solid #008fa1}\n\n.is-disabled .choices__list--multiple .choices__item{background-color:#aaa;border:1px solid #919191}\n\n.choices__list--dropdown,.choices__list[aria-expanded]{visibility:hidden;z-index:1;position:absolute;width:100%;background-color:#fff;border:1px solid #ddd;top:100%;margin-top:-1px;border-bottom-left-radius:2.5px;border-bottom-right-radius:2.5px;overflow:hidden;word-break:break-all;will-change:visibility}\n\n.is-active.choices__list--dropdown,.is-active.choices__list[aria-expanded]{visibility:visible}\n\n.is-open .choices__list--dropdown,.is-open .choices__list[aria-expanded]{border-color:#b7b7b7}\n\n.is-flipped .choices__list--dropdown,.is-flipped .choices__list[aria-expanded]{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-radius:.25rem .25rem 0 0}\n\n.choices__list--dropdown .choices__list,.choices__list[aria-expanded] .choices__list{position:relative;max-height:300px;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position}\n\n.choices__list--dropdown .choices__item,.choices__list[aria-expanded] .choices__item{position:relative;padding:10px;font-size:14px}\n\n[dir=rtl] .choices__list--dropdown .choices__item,[dir=rtl] .choices__list[aria-expanded] .choices__item{text-align:right}\n\n@media (min-width:640px){.choices__list--dropdown .choices__item--selectable,.choices__list[aria-expanded] .choices__item--selectable{padding-right:100px}.choices__list--dropdown .choices__item--selectable::after,.choices__list[aria-expanded] .choices__item--selectable::after{content:attr(data-select-text);font-size:12px;opacity:0;position:absolute;right:10px;top:50%;transform:translateY(-50%)}[dir=rtl] .choices__list--dropdown .choices__item--selectable,[dir=rtl] .choices__list[aria-expanded] .choices__item--selectable{text-align:right;padding-left:100px;padding-right:10px}[dir=rtl] .choices__list--dropdown .choices__item--selectable::after,[dir=rtl] .choices__list[aria-expanded] .choices__item--selectable::after{right:auto;left:10px}}\n\n.choices__list--dropdown .choices__item--selectable.is-highlighted,.choices__list[aria-expanded] .choices__item--selectable.is-highlighted{background-color:#f2f2f2}\n\n.choices__list--dropdown .choices__item--selectable.is-highlighted::after,.choices__list[aria-expanded] .choices__item--selectable.is-highlighted::after{opacity:.5}\n\n.choices__item{cursor:default}\n\n.choices__item--selectable{cursor:pointer}\n\n.choices__item--disabled{cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:.5}\n\n.choices__heading{font-weight:600;font-size:12px;padding:10px;border-bottom:1px solid #f7f7f7;color:gray}\n\n.choices__button{text-indent:-9999px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background-color:transparent;background-repeat:no-repeat;background-position:center;cursor:pointer}\n\n.choices__button:focus,.choices__input:focus{outline:0}\n\n.choices__input{display:inline-block;vertical-align:baseline;background-color:#f9f9f9;font-size:14px;margin-bottom:5px;border:0;border-radius:0;max-width:100%;padding:4px 0 4px 2px}\n\n.choices__input::-webkit-search-cancel-button,.choices__input::-webkit-search-decoration,.choices__input::-webkit-search-results-button,.choices__input::-webkit-search-results-decoration{display:none}\n\n.choices__input::-ms-clear,.choices__input::-ms-reveal{display:none;width:0;height:0}\n\n[dir=rtl] .choices__input{padding-right:2px;padding-left:0}\n\n.choices__placeholder{opacity:.5}\n\nhtml, body {\n  height: 100%;\n  margin: 0;\n  padding: 0;\n}\n\n.body-wrapper {\n  position: relative;\n  overflow-x: hidden\n\n}\n\n.body-wrapper.auth {\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  flex-direction: column;\n  min-height: 100%;\n  justify-content: space-between;\n}\n\n.body-wrapper.auth > .container {\n      width: 100%;\n}\n\n*, *:before, *:after {\n  box-sizing: border-box;\n}\n\n.no-transition * {\n  transition: none !important;\n}\n\n.container {\n  display: block;\n  margin: 0 auto;\n  max-width: none;\n  max-width: 1440px;\n  padding: 0 15px;\n}\n\n@media screen and (max-width: 1920px) {\n\n  .container {\n    max-width: 1440px;\n  }\n}\n\n@media screen and (max-width: 1536px) {\n\n  .container {\n    max-width: 1280px;\n  }\n}\n\n@media screen and (max-width: 1280px) {\n\n  .container {\n    max-width: 1024px;\n  }\n}\n\n@media screen and (max-width: 1024px) {\n\n  .container {\n    max-width: 768px;\n  }\n}\n\n.sort-wrapper {\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  width: 100%;\n  justify-content: flex-end;\n  margin-bottom: 16px;\n}\n\n.sort-wrapper .page-sub-title {\n    margin-bottom: 0;\n  }\n\n.sort-wrapper .choices .choices__inner {\n      background: #081C24;\n      border-radius: 4px;\n      color: #FFF;\n      border: none;\n      min-height: 32px;\n      padding: 0.5px 16px;\n      font-size: 14px;\n      font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n      font-weight: bold;\n    }\n\n.sort-wrapper .choices[data-type*=\"select-one\"]::after {\n  border: none;\n  content: \"\";\n  margin-top: -3px;\n  pointer-events: none;\n  position: absolute;\n  right: 11.5px;\n  top: 50%;\n  width: 12px;\n  height: 6px;\n  background: url(" + ___CSS_LOADER_URL_REPLACEMENT_2___ + ");\n  background-size: 12px 6px;\n}\n\n.sort-wrapper .choices[data-type*=\"select-one\"].is-open::after {\n    transform: rotate(180deg);\n}\n\n.sort-wrapper .choices[data-type*=select-one] > .choices__list > .choices__list > .choices__item--selectable\n  {\n    padding-right: 0px;\n  }\n\n.sort-wrapper .choices[data-type*=select-one] > .choices__list > .choices__list > .choices__item--selectable::after\n  {\n    display: none;\n  }\n\n.default-content-area {\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  align-items: flex-start;\n  gap: 56px;\n  padding-bottom: 160px;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .default-content-area {\n    flex-wrap: wrap;\n  }\n}\n\n@media screen and (max-width: 1024px) {\n\n  .default-content-area {\n    padding-bottom: 120px;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .default-content-area {\n    padding-bottom: 80px;\n  }\n}\n\n.default-content-area .sidebar {\n    width: 215px;\n    min-width: 215px;\n    flex-shrink: 0;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .default-content-area .sidebar {\n    width: 100%;\n    min-width: 100%;\n    margin-top: 40px;\n  }\n}\n\n.default-content-area .card-wrapper,.default-content-area .card-roll {\n    width: 100%;\n}\n\n@media screen and (max-width: 640px) {\n\n  .default-content-area .card-roll {\n      max-width: 450px;\n      margin: 0 auto;\n  }\n}\n\n.default-content-area.scientists .card-roll {\n      display: grid;\n      grid-gap: 100px 20px;\n      gap: 100px 20px;\n      grid-auto-rows: 1fr;\n      grid-template-columns: 1fr 1fr 1fr;\n}\n\n@media screen and (max-width: 1024px) {\n\n  .default-content-area.scientists .card-roll {\n    grid-template-columns: 1fr 1fr;\n    gap: 60px 15px;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .default-content-area.scientists .card-roll {\n    grid-template-columns: 1fr;\n    gap: 30px 15px;\n  }\n}\n\n.default-content-area.publications {\n  margin-top: 60px;\n}\n\n.default-content-area.publications .card-roll {\n      display: grid;\n      grid-gap: 20px;\n      gap: 20px;\n      grid-template-columns: 1fr 1fr;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .default-content-area.publications .card-roll {\n    gap: 20px;\n  }\n}\n\n@media screen and (max-width: 1024px) {\n\n  .default-content-area.publications .card-roll {\n    grid-template-columns: 1fr;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .default-content-area.publications .card-roll {\n    gap: 20px;\n  }\n}\n\n.default-content-area.project-type .card-roll {\n      display: grid;\n      grid-gap: 24px;\n      gap: 24px;\n      grid-auto-rows: 1fr;\n      grid-template-columns: 1fr 1fr;\n}\n\n@media screen and (max-width: 1024px) {\n\n  .default-content-area.project-type .card-roll {\n    grid-template-columns: 1fr;\n  }\n}\n\n.default-content-area.project-type-v2 .card-roll {\n      display: grid;\n      grid-gap: 24px;\n      gap: 24px;\n      grid-template-columns: 1fr;\n}\n\n.default-content-area.teams .card-roll {\n      display: grid;\n      grid-gap: 80px 20px;\n      gap: 80px 20px;\n      grid-auto-rows: 1fr;\n      grid-template-columns: 1fr 1fr 1fr;\n}\n\n@media screen and (max-width: 1024px) {\n\n  .default-content-area.teams .card-roll {\n    grid-template-columns: 1fr 1fr;\n    gap: 60px 20px;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .default-content-area.teams .card-roll {\n    grid-template-columns: 1fr;\n    gap: 40px 20px;\n  }\n}\n\n.default-content-area.news {\n  margin-top: 60px;\n}\n\n.default-content-area.news .card-roll {\n      display: grid;\n      grid-gap: 120px 20px;\n      gap: 120px 20px;\n      grid-auto-rows: 1fr;\n      grid-template-columns: 1fr 1fr 1fr 1fr;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .default-content-area.news .card-roll {\n    grid-template-columns: 1fr 1fr 1fr;\n    gap: 80px 20px;\n  }\n}\n\n@media screen and (max-width: 1024px) {\n\n  .default-content-area.news .card-roll {\n    grid-template-columns: 1fr 1fr;\n    gap: 64px 15px;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .default-content-area.news .card-roll {\n    grid-template-columns: 1fr;\n    gap: 32px 15px;\n  }\n}\n\n.default-content-area.events .card-roll {\n      display: grid;\n      grid-gap: 120px 20px;\n      gap: 120px 20px;\n      grid-auto-rows: 1fr;\n      grid-template-columns: 1fr 1fr 1fr;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .default-content-area.events .card-roll {\n    grid-template-columns: 1fr 1fr;\n  }\n}\n\n@media screen and (max-width: 768px) {\n\n  .default-content-area.events .card-roll {\n    grid-template-columns: 1fr;\n  }\n}\n\n.default-content-area.events .submit-news-v2.end {\n      margin-bottom: 0;\n}\n\n.default-content-area.media .card-roll {\n      display: grid;\n      grid-gap: 120px 20px;\n      gap: 120px 20px;\n      grid-auto-rows: 1fr;\n      grid-template-columns: 1fr 1fr 1fr 1fr;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .default-content-area.media .card-roll {\n    grid-template-columns: 1fr 1fr;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .default-content-area.media .card-roll {\n    grid-template-columns: 1fr;\n  }\n}\n\n.default-content-area.gallery-page .card-roll {\n      display: grid;\n      grid-gap: 80px 20px;\n      gap: 80px 20px;\n      grid-auto-rows: 1fr;\n      grid-template-columns: 1fr 1fr 1fr;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .default-content-area.gallery-page .card-roll {\n    grid-template-columns: 1fr 1fr;\n  }\n}\n\n@media screen and (max-width: 1024px) {\n\n  .default-content-area.gallery-page .card-roll {\n    grid-template-columns: 1fr 1fr;\n    gap: 32px 15px;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .default-content-area.gallery-page .card-roll {\n    grid-template-columns: 1fr;\n    gap: 32px 15px;\n  }\n}\n\n.default-content-area.employment-page {\n  padding-top: 40px;\n}\n\n.default-content-area.employment-page .card-roll {\n      display: grid;\n      grid-gap: 120px 20px;\n      gap: 120px 20px;\n      grid-auto-rows: 1fr;\n      grid-template-columns: 1fr;\n}\n\n.default-content-area.forms .card-roll, .default-content-area.documents .card-roll {\n      display: grid;\n      grid-gap: 120px 20px;\n      gap: 120px 20px;\n      grid-auto-rows: 1fr;\n      grid-template-columns: 1fr 1fr 1fr;\n}\n\n@media screen and (max-width: 1024px) {\n\n  .default-content-area.forms .card-roll, .default-content-area.documents .card-roll {\n    grid-template-columns: 1fr 1fr;\n    gap: 32px 15px;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .default-content-area.forms .card-roll, .default-content-area.documents .card-roll {\n    grid-template-columns: 1fr;\n    gap: 32px 15px;\n  }\n}\n\n.default-content-area .card-wrapper.loading .card-roll {\n    position: relative;\n}\n\n.default-content-area .card-wrapper.loading .card-roll::after {\n  content: \"\";\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  right: 0;\n  background: #000 url(" + ___CSS_LOADER_URL_REPLACEMENT_3___ + ") center center no-repeat;\n  opacity: 0.5;\n}\n\n.single-content-area {\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  align-items: flex-start;\n  gap: 25px;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .single-content-area {\n    flex-wrap: wrap;\n  }\n}\n\n.single-content-area .main {\n    flex-grow: 1;\n    max-width: 830px;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .single-content-area .main {\n    max-width: 639px;\n  }\n}\n\n@media screen and (max-width: 1024px) {\n\n  .single-content-area .main {\n    max-width: 100%;\n  }\n}\n\n.single-content-area.3-column .main {\n      flex-grow: 1;\n      max-width: 680px;\n}\n\n.single-content-area .sidebar.left {\n    width: 320px;\n    padding-right: 55px;\n    flex-shrink: 0;\n}\n\n.single-content-area .sidebar.left .pagination-single a {\n        transition: all 0.3s ease;\n        display: inline-block;\n      }\n\n.single-content-area .sidebar.left .pagination-single a rect{\n          transition: all 0.3s ease;\n        }\n\n.single-content-area .sidebar.left .pagination-single a path {\n          transition: all 0.3s ease;\n        }\n\n.single-content-area .sidebar.left .pagination-single a:hover rect {\n            fill: #042C38;\n}\n\n.single-content-area .sidebar.left .pagination-single a:hover path {\n            stroke: #FCFCFC;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .single-content-area .sidebar.left {\n    width: 300px;\n    padding-right: 30px;\n  }\n}\n\n@media screen and (max-width: 1024px) {\n\n  .single-content-area .sidebar.left {\n    margin: 0 auto;\n    padding-right: 0px;\n  }\n\n  .single-content-area .sidebar.left .pagination-single {\n        display: -webkit-box;\n        display: -ms-flexbox;\n        display: flex;\n        align-items: center;\n        justify-content: space-between;\n  }\n}\n\n.single-content-area .sidebar.right {\n    width: 320px;\n    flex-shrink: 0;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .single-content-area .sidebar.right {\n    width: 100%;\n  }\n}\n\n.single-content-area .sidebar.right.related {\n  width: 360px;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .single-content-area .sidebar.right.related {\n    width: 100%;\n  }\n}\n\n.single-content-area .sidebar.right .card:first-child {\n      border-radius: 8px 8px 2px 2px;\n}\n\n.single-content-area .sidebar.right .card:last-child {\n      border-radius: 2px 2px 8px 8px;\n}\n\n.single-content-area .sidebar.right .card {\n      border-radius: 2px;\n}\n\n.single-content-area .info-list .title {\n      margin: 0;\n    }\n\n.single-content-area .info-list .list-item {\n      padding: 15px;\n      margin: 0 0 4px;\n      background: #F5F5F5;\n      display: -webkit-box;\n      display: -ms-flexbox;\n      display: flex;\n      gap: 0 8px;\n    }\n\n.single-content-area .info-list .list-item p, .single-content-area .info-list .list-item a {\n        margin: 0\n      }\n\n.single-content-area .info-list .list-item p.label, .single-content-area .info-list .list-item a.label {\n  margin-bottom: 8px;\n  font-weight: bold;\n}\n\n.single-content-area .info-list .list-item a:hover {\n  text-decoration: underline;\n}\n\n.single-content-area-v2 {\n  display: grid;\n  grid-gap: 20px 240px;\n  gap: 20px 240px;\n  grid-auto-rows: 1fr;\n  grid-template-columns: 1fr 1fr;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .single-content-area-v2 {\n    gap: 15px 32px;\n  }\n}\n\n@media screen and (max-width: 1024px) {\n\n  .single-content-area-v2 {\n    grid-template-columns: 1fr;\n    grid-auto-rows: auto;\n  }\n}\n\n.single-content-area-v3 {\n  display: grid;\n  grid-gap: 20px 240px;\n  gap: 20px 240px;\n  grid-auto-rows: 1fr;\n  grid-template-columns: 1fr 1.3fr;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .single-content-area-v3 {\n    gap: 15px 32px;\n  }\n}\n\n@media screen and (max-width: 1024px) {\n\n  .single-content-area-v3 {\n    grid-template-columns: 1fr;\n    grid-auto-rows: auto;\n  }\n}\n\n@font-face {\n  font-family: 'Helvetica Neue';\n  src: url(" + ___CSS_LOADER_URL_REPLACEMENT_4___ + ");\n  src: url(" + ___CSS_LOADER_URL_REPLACEMENT_5___ + ") format('embedded-opentype'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_6___ + ") format('woff2'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_7___ + ") format('woff'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_8___ + ") format('truetype'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_9___ + ") format('svg');\n  font-weight: bold;\n  font-style: italic;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'Helvetica Neue';\n  src: url(" + ___CSS_LOADER_URL_REPLACEMENT_10___ + ");\n  src: url(" + ___CSS_LOADER_URL_REPLACEMENT_11___ + ") format('embedded-opentype'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_12___ + ") format('woff2'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_13___ + ") format('woff'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_14___ + ") format('truetype'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_15___ + ") format('svg');\n  font-weight: bold;\n  font-style: normal;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'Helvetica Neue';\n  src: url(" + ___CSS_LOADER_URL_REPLACEMENT_16___ + ");\n  src: url(" + ___CSS_LOADER_URL_REPLACEMENT_17___ + ") format('embedded-opentype'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_18___ + ") format('woff2'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_19___ + ") format('woff'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_20___ + ") format('truetype'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_21___ + ") format('svg');\n  font-weight: normal;\n  font-style: normal;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'Helvetica Neue Condensed';\n  src: url(" + ___CSS_LOADER_URL_REPLACEMENT_22___ + ");\n  src: url(" + ___CSS_LOADER_URL_REPLACEMENT_23___ + ") format('embedded-opentype'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_24___ + ") format('woff2'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_25___ + ") format('woff'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_26___ + ") format('truetype'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_27___ + ") format('svg');\n  font-weight: 900;\n  font-style: normal;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'Helvetica Neue';\n  src: url(" + ___CSS_LOADER_URL_REPLACEMENT_28___ + ");\n  src: url(" + ___CSS_LOADER_URL_REPLACEMENT_29___ + ") format('embedded-opentype'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_30___ + ") format('woff2'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_31___ + ") format('woff'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_32___ + ") format('truetype'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_33___ + ") format('svg');\n  font-weight: 300;\n  font-style: normal;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'Helvetica Neue Condensed';\n  src: url(" + ___CSS_LOADER_URL_REPLACEMENT_34___ + ");\n  src: url(" + ___CSS_LOADER_URL_REPLACEMENT_35___ + ") format('embedded-opentype'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_36___ + ") format('woff2'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_37___ + ") format('woff'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_38___ + ") format('truetype'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_39___ + ") format('svg');\n  font-weight: bold;\n  font-style: normal;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'Helvetica Neue';\n  src: url(" + ___CSS_LOADER_URL_REPLACEMENT_40___ + ");\n  src: url(" + ___CSS_LOADER_URL_REPLACEMENT_41___ + ") format('embedded-opentype'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_42___ + ") format('woff2'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_43___ + ") format('woff'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_44___ + ") format('truetype'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_45___ + ") format('svg');\n  font-weight: 300;\n  font-style: italic;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'Helvetica Neue';\n  src: url(" + ___CSS_LOADER_URL_REPLACEMENT_46___ + ");\n  src: url(" + ___CSS_LOADER_URL_REPLACEMENT_47___ + ") format('embedded-opentype'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_48___ + ") format('woff2'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_49___ + ") format('woff'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_50___ + ") format('truetype'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_51___ + ") format('svg');\n  font-weight: 500;\n  font-style: normal;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'Helvetica Neue';\n  src: url(" + ___CSS_LOADER_URL_REPLACEMENT_52___ + ");\n  src: url(" + ___CSS_LOADER_URL_REPLACEMENT_53___ + ") format('embedded-opentype'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_54___ + ") format('woff2'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_55___ + ") format('woff'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_56___ + ") format('truetype'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_57___ + ") format('svg');\n  font-weight: 500;\n  font-style: italic;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'Helvetica Neue';\n  src: url(" + ___CSS_LOADER_URL_REPLACEMENT_58___ + ");\n  src: url(" + ___CSS_LOADER_URL_REPLACEMENT_59___ + ") format('embedded-opentype'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_60___ + ") format('woff2'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_61___ + ") format('woff'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_62___ + ") format('truetype'),\n      url(" + ___CSS_LOADER_URL_REPLACEMENT_63___ + ") format('svg');\n  font-weight: normal;\n  font-style: italic;\n  font-display: swap;\n}\n\nbody {\n  color: #081C24;\n  font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n  font-size: 16px;\n  line-height: 140%;\n}\n\na {\n  text-decoration: none;\n}\n\nh1,.h1 {\n  color: #081C24;\n  display: block;\n  font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n  /*font-size: 86px;*/\n  font-size: 80px;\n  font-style: normal;\n  font-weight: bold;\n  line-height: 90%;\n  margin: 15px 0 25px;\n}\n\n@media screen and (max-width: 1536px) {\n\n  h1,.h1 {\n    font-size: 70px;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  h1,.h1 {\n    font-size: 60px;\n  }\n}\n\nh2,.h2 {\n  color: #042C38;\n  display: block;\n  font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n  font-style: normal;\n  font-weight: bold;\n  line-height: 100%;\n  margin: 15px 0 25px;\n  font-size: 56px;\n\n}\n\n@media screen and (max-width: 1536px) {\n\n  h2,.h2 {\n    font-size: 50px;\n  }\n}\n\n@media screen and (max-width: 1024px) {\n\n  h2,.h2 {\n    font-size: 40px;\n  }\n}\n\nh3,.h3 {\n  color: #042C38;\n  display: block;\n  font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n  /*font-size: 50px;*/\n  font-size: 44px;\n  font-style: normal;\n  font-weight: bold;\n  line-height: 120%;\n  margin: 15px 0 25px;\n}\n\n@media screen and (max-width: 1024px) {\n\n  h3,.h3 {\n    font-size: 40px;\n  }\n}\n\nh4,.h4 {\n  color: #042C38;\n  display: block;\n  font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n  /*font-size: 36px;*/\n  font-size: 34px;\n  font-style: normal;\n  font-weight: bold;\n  line-height: 120%;\n  margin: 15px 0 25px;\n}\n\n@media screen and (max-width: 768px) {\n\n  h4,.h4 {\n    font-size: 30px;\n  }\n}\n\nh5,.h5 {\n  color: #042C38;\n  display: block;\n  font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n  /*font-size: 28px;*/\n  font-size: 26px;\n  font-style: normal;\n  font-weight: bold;\n  line-height: 120%;\n  margin: 15px 0 25px;\n\n}\n\n@media screen and (max-width: 1024px) {\n\n  h5,.h5 {\n    font-size: 24px;\n  }\n}\n\nh6,.h6 {\n  color: #042C38;\n  display: block;\n  font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n  font-size: 26px;\n  font-style: normal;\n  font-weight: bold;\n  line-height: 120%;\n  margin: 15px 0 25px;\n}\n\n.s1 {\n  color: #042C38;\n  display: block;\n  font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n  font-size: 22px;\n  font-style: normal;\n  font-weight: bold;\n  line-height: 120%;\n  margin: 15px 0 25px;\n}\n\n@media screen and (max-width: 768px) {\n\n  .s1 {\n    font-size: 18px;\n  }\n}\n\n.s2 {\n  color: #042C38;\n  display: block;\n  font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n  /*font-size: 20px;*/\n  font-size: 18px;\n  font-style: normal;\n  font-weight: bold;\n  line-height: 130%;\n  margin: 15px 0 25px;\n  \n}\n\n@media screen and (max-width: 768px) {\n\n  .s2 {\n    font-size: 18px;\n  }\n}\n\n.s3 {\n  color: #042C38;\n  display: block;\n  font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n  font-size: 16px;\n  font-style: normal;\n  font-weight: bold;\n  line-height: 120%;\n  margin: 15px 0 25px;\n}\n\n.s4 {\n  color: #042C38;\n  display: block;\n  font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n  font-size: 14px;\n  font-style: normal;\n  font-weight: bold;\n  line-height: 100%;\n  margin: 15px 0 25px;\n}\n\n.s5 {\n  color: #042C38;\n  display: block;\n  font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n  font-size: 12px;\n  font-style: normal;\n  font-weight: bold;\n  line-height: 100%;\n  margin: 15px 0 25px;\n}\n\n.b1 {\n  color: #042C38;\n  display: block;\n  font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n  font-size: 16px;\n  font-style: normal;\n  line-height: 140%;\n  margin: 15px 0 25px;\n}\n\n.b2 {\n  color: #042C38;\n  display: block;\n  font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n  font-size: 16px;\n  line-height: 140%;\n  margin: 15px 0 25px;\n}\n\n.b3 {\n  color: #042C38;\n  display: block;\n  font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n  font-size: 14px;\n  font-style: normal;\n  line-height: 140%;\n  margin: 15px 0 25px;\n}\n\n.b4 {\n  color: #042C38;\n  display: block;\n  font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n  font-size: 12px;\n  font-style: normal;\n  line-height: 140%;\n  margin: 15px 0 25px;\n}\n\n.c1 {\n  color: #042C38;\n  display: block;\n  font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n  /*font-size: 22px;*/\n  font-size: 20px;\n  font-style: normal;\n  font-weight: 400;\n  line-height: 140%;\n  margin: 15px 0 25px;\n}\n\n@media screen and (max-width: 1536px) {\n\n  .c1 {\n    font-size: 20px;\n  }\n}\n\n@media screen and (max-width: 768px) {\n\n  .c1 {\n    font-size: 18px;\n  }\n}\n\nb, strong {\n  font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n  font-style: normal;\n  font-weight: bold;\n}\n\n.single-detail {\n  padding: 0 0 120px;\n}\n\n@media screen and (max-width: 1024px) {\n\n  .single-detail {\n    padding: 0 0 64px;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .single-detail {\n    padding: 0 0 32px;\n  }\n}\n\n.single-detail .sidebar.featured .image-wrapper {\n        padding-bottom: 130%;\n        padding-bottom: 79%;\n        margin-bottom: 30px;\n        overflow: visible;\n        overflow: initial;\n}\n\n.single-detail .sidebar.featured .image-wrapper img {\n          border-radius: 8px;\n          /*\n          height: auto;\n          min-height: 70%;\n          */\n          height: 100%;\n        }\n\n.single-detail .sidebar.featured .image-wrapper .image-caption p {\n            font-size: 12px;\n            color: #a9a9a9;\n            line-height: 130%;\n          }\n\n.single-detail .sidebar.featured.full .image-wrapper {\n          padding-bottom: 0;\n}\n\n.single-detail .sidebar.featured.full .image-wrapper .position {\n            position: relative;\n          }\n\n.single-detail .sidebar.featured-event .image-wrapper {\n        padding-bottom: 66%;\n        padding-bottom: 79%;\n        margin-bottom: 30px;\n}\n\n.single-detail .sidebar .publication-card {\n      background: #F5F5F5;\n      margin-bottom: 4px;\n      display: -webkit-box;\n      display: -ms-flexbox;\n      display: flex;\n      flex-direction: row;\n      align-items: flex-start;\n      padding: 16px;\n      gap: 8px;\n      font-size: 16px;\n      font-weight: 500;\n      color: #081C24;\n      transition: all 0.3s ease;\n}\n\n.single-detail .sidebar .publication-card svg {\n        flex-shrink: 0;\n        width: 24px;\n        height: 24px;\n      }\n\n.single-detail .sidebar .publication-card svg path {\n          transition: all 0.3s ease;\n        }\n\n.single-detail .sidebar .publication-card:hover {\n  background: #D53737;\n  color: #FFF;\n}\n\n.single-detail .sidebar .publication-card:hover svg path {\n            stroke: #FFF;\n          }\n\n.single-detail .meta {\n    margin-bottom: 64px;\n}\n\n.single-detail .meta a.link {\n      color: #042C38;\n      text-decoration: underline;\n    }\n\n.single-detail .meta p {\n      margin: 0;\n    }\n\n.single-detail .meta .s3 {\n      margin: 32px 0 15px;\n\n    }\n\n.single-detail .meta .project {\n      margin: 15px 0 25px;\n      padding-left: 15px;\n      border-left: 4px solid #D53737;\n\n    }\n\n.single-detail .meta .project a {\n        color: #000;\n        transition: all 0.3s ease\n\n      }\n\n.single-detail .meta .project a:hover {\n  color: #D53737;\n}\n\n.single-detail .meta .tags {\n      list-style: none;\n      display: -webkit-box;\n      display: -ms-flexbox;\n      display: flex;\n      align-items: flex-start;\n      padding: 0px;\n      gap: 8px;\n      flex-wrap: wrap;\n    }\n\n.single-detail .meta .tags li {\n        list-style: none;\n        display: -webkit-box;\n        display: -ms-flexbox;\n        display: flex;\n        flex-direction: row;\n        justify-content: center;\n        align-items: center;\n        padding: 4px 8px 5px;\n        border: 1px solid #CFCFCF;\n        border-radius: 2px;\n      }\n\n.single-detail .meta .supervisor-list {\n      display: -webkit-box;\n      display: -ms-flexbox;\n      display: flex;\n      align-items: flex-start;\n      padding: 0px;\n      gap: 8px;\n      flex-wrap: wrap;\n    }\n\n.single-detail .meta .supervisor-list .supervisor-card {\n        display: -webkit-box;\n        display: -ms-flexbox;\n        display: flex;\n        flex-direction: row;\n        align-items: center;\n        padding: 0px;\n        gap: 8px;\n        color: #081C24;\n        transition: all 0.2s ease;\n        flex-wrap: nowrap\n      }\n\n.single-detail .meta .supervisor-list .supervisor-card:hover {\n  opacity: 0.2;\n}\n\n.single-detail .meta .supervisor-list .supervisor-card .image-wrapper {\n          width: 32px;\n          height: 32px;\n          border-radius: 90px;\n}\n\n.single-detail .meta .supervisor-list .supervisor-card .image-wrapper img {\n            width: 32px;\n            height: 32px;\n          }\n\n.single-detail .main.spacing-right {\n  padding-right: 80px;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .single-detail .main.spacing-right {\n    padding-right: 0;\n  }\n}\n\n.single-detail .main.full {\n  max-width: none;\n}\n\n.single-detail .main .title-wrapper {\n      border-bottom: 3px solid #042C38;\n      padding-bottom: 10px;\n      margin-bottom: 64px;\n}\n\n.single-detail .main .title-wrapper .metadata {\n        color: #387E97;\n        display: block;\n        margin: 0 0 5px;\n        font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n        display: -webkit-box;\n        display: -ms-flexbox;\n        display: flex;\n        align-items: center;\n      }\n\n.single-detail .main .title-wrapper .metadata .ellipse {\n          width: 6px;\n          height: 6px;\n          display: inline-block;\n          background: #387E97;\n          margin: 0 8px;\n          border-radius: 90px;\n        }\n\n.single-detail .main .title-wrapper .s4 {\n        color: #387E97;\n        margin: 0 0 15px;\n        text-transform: uppercase;\n      }\n\n.single-detail .main .title-wrapper .h3 {\n        margin-bottom: 20px;\n      }\n\n.single-detail .main .title-wrapper p {\n        margin: 5px 0;\n        font-weight: 500;\n        max-width: 325px;\n        width: 100%;\n      }\n\n.single-detail .main .title-wrapper .date {\n        color: #387E97;\n        margin: 0 0 10px;\n        text-transform: uppercase;\n      }\n\n.single-detail .main .title-wrapper .author {\n        max-width: 328px;\n        width: 100%;\n        font-weight: 500;\n      }\n\n.single-detail .main .title-wrapper span.label {\n        display: block;\n        margin: 0 0 8px;\n        font-weight: 500;\n      }\n\n.single-detail .main .title-wrapper .reduced-size {\n        margin-top: 15px;\n      }\n\n.single-detail .main .title-wrapper .reduced-size p {\n          margin: 5px 0;\n          font-weight: 400;\n          max-width: 325px;\n          width: 100%;\n\n          color: #bbb;\n          display: block;\n          font-size: 14px;\n          line-height: 120%;\n        }\n\n.single-detail .main .content-area {\n      margin-bottom: 64px;\n}\n\n.single-detail .main .file_download a.btn {\n        display: inline-block;\n      }\n\n.single-detail .main .social-area p {\n        color: #081C24;\n        font-weight: 500;\n      }\n\n.single-detail .main .social-area ul,\n      .single-detail .main .social-area li {\n        list-style: none;\n        padding: 0;\n      }\n\n.single-detail .main .social-area ul {\n        display: -webkit-box;\n        display: -ms-flexbox;\n        display: flex;\n        align-items: center;\n        padding: 0px;\n        gap: 8px;\n        flex-wrap: wrap;\n      }\n\n.single-detail .main .social-area ul li.label {\n          padding-right: 8px;\n          font-weight: 500;\n\n        }\n\n@media screen and (max-width: 640px) {\n\n  .single-detail .main .social-area ul li.label {\n    width: 100%;\n  }\n}\n\n.single-detail .main .social-area ul li a {\n          display: -webkit-box;\n          display: -ms-flexbox;\n          display: flex;\n          flex-direction: row;\n          justify-content: center;\n          align-items: center;\n          padding: 4px 8px 5px;\n          background: transparent;\n          border: 1px solid #CFCFCF;\n          border-radius: 2px;\n          opacity: 1;\n          color: #081C24;\n          gap: 8px;\n          transition: all 0.3s ease;\n}\n\n.single-detail .main .social-area ul li a span {\n            line-height: 1;\n          }\n\n.single-detail .main .social-area ul li a svg path {\n              transition: all 0.3s ease;\n            }\n\n.single-detail .main .social-area ul li a:hover {\n  background: #D53737;\n  border: 1px solid #D53737;\n  color: #FFF;\n}\n\n.single-detail .main .social-area ul li a:hover svg path.fill {\n  fill: #FFF;\n}\n\n.single-detail .main .social-area ul li a:hover svg path.stroke {\n  stroke: #FFF;\n}\n\n.single-detail .main .button_wrapper {\n      padding-top: 25px;\n}\n\n.single-detail .main .button_wrapper .btn {\n        display: inline-block;\n      }\n\n#tinymce:first-child, .free-input:first-child {\n  margin-top: 0;\n}\n\n#tinymce .has-x-large-font-size,#tinymce .has-large-font-size,.free-input .has-x-large-font-size,.free-input .has-large-font-size {\n    margin: 60px 0;\n}\n\n#tinymce .has-x-large-font-size strong, #tinymce .has-large-font-size strong, .free-input .has-x-large-font-size strong, .free-input .has-large-font-size strong {\n      line-height: 110%;\n    }\n\n#tinymce .has-medium-font-size, .free-input .has-medium-font-size {\n    margin: 60px 0;\n}\n\n#tinymce h1,#tinymce h2,#tinymce h3,#tinymce h4,#tinymce h5,.free-input h1,.free-input h2,.free-input h3,.free-input h4,.free-input h5 {\n    margin-top: 60px;\n}\n\n#tinymce .wp-block-image,#tinymce .wp-block-embed,#tinymce .wp-block-quote,.free-input .wp-block-image,.free-input .wp-block-embed,.free-input .wp-block-quote {\n    margin: 60px 0;\n}\n\n#tinymce ul,#tinymce ol,.free-input ul,.free-input ol {\n    margin: 0 0 60px;\n    margin-bottom: 20px;\n}\n\n#tinymce .smaller p, .free-input .smaller p {\n      font-size: 12px;\n      line-height: 150%;\n    }\n\n#tinymce a:not(.wp-element-button), .free-input a:not(.wp-element-button) {\n    color: #042C38;\n    text-decoration: underline;\n    position: relative;\n    transition: all 0.3s ease;\n}\n\n#tinymce a:not(.wp-element-button) .hover, .free-input a:not(.wp-element-button) .hover {\n      display: none;\n      width: 340px;\n      position: absolute;\n      bottom: 100%;\n      left: 0;\n      border-bottom: 2px solid #D53737;\n      background: #FFF;\n      z-index: 5;\n      padding: 16px;\n      /*box-shadow: 43px 155px 65px rgba(0, 0, 0, 0.01), 24px 87px 54px rgba(0, 0, 0, 0.05), 11px 39px 40px rgba(0, 0, 0, 0.09);*/\n      box-shadow: 3px -15px 40px rgba(0, 0, 0, .015), 24px 7px 40px rgba(0, 0, 0, .05), 11px 3px 40px rgba(0, 0, 0, .11);\n      border-radius: 4px;\n      color: #042C38;\n    }\n\n#tinymce a:not(.wp-element-button) .hover p, .free-input a:not(.wp-element-button) .hover p {\n        margin: 0;\n      }\n\n#tinymce a:not(.wp-element-button) .hover .description, .free-input a:not(.wp-element-button) .hover .description {\n        margin-bottom: 15px;\n      }\n\n#tinymce a:not(.wp-element-button) .hover .title, .free-input a:not(.wp-element-button) .hover .title {\n        display: -webkit-box;\n        display: -ms-flexbox;\n        display: flex;\n        align-items: center;\n        gap: 10px;\n      }\n\n#tinymce a:not(.wp-element-button) .hover .title svg, .free-input a:not(.wp-element-button) .hover .title svg {\n          flex-shrink: 0;\n        }\n\n#tinymce a:not(.wp-element-button):hover, .free-input a:not(.wp-element-button):hover {\n  color: #D53737;\n}\n\n#tinymce a:not(.wp-element-button):hover .hover, .free-input a:not(.wp-element-button):hover .hover {\n        display: block;\n}\n\n#tinymce a.wp-element-button, .free-input a.wp-element-button {\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    padding: 10px 24px 12px;\n    border-radius: 8px;\n    line-height: 140%;\n    font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n    font-weight: bold;\n    cursor: pointer;\n    border: 0;\n    gap: 12px;\n    transition: all 0.3s ease-in;\n    color: #FFF;\n    background: #D53737;\n}\n\n#tinymce a.wp-element-button:hover, .free-input a.wp-element-button:hover {\n  background: #951414;\n}\n\n#tinymce blockquote, .free-input blockquote {\n    padding-top: 32px;\n    border-top: 4px solid #387E97;\n    margin: 15px 0 25px;\n}\n\n#tinymce blockquote > *:first-child, .free-input blockquote > *:first-child {\n      margin-top: 0\n    }\n\n#tinymce blockquote > *:first-child:before, .free-input blockquote > *:first-child:before {\n  content: \"“\";\n  font-size: 64px;\n  font-style: normal;\n  font-weight: bold;\n  margin-right: 64px;\n  position: relative;\n  top: 15px;\n}\n\n#tinymce blockquote p, .free-input blockquote p {\n      display: block;\n      font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n      font-size: 36px;\n      font-style: normal;\n      font-weight: bold;\n      line-height: 120%;\n      margin: 15px 0 25px;\n      color: #387E97;\n    }\n\n#tinymce ul,#tinymce ol,.free-input ul,.free-input ol {\n    padding-left: 30px;\n}\n\n#tinymce ul li, #tinymce ol li, .free-input ul li, .free-input ol li {\n      margin-bottom: 5px;\n    }\n\n#tinymce ul, .free-input ul {\n    list-style-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_64___ + ");\n    position: relative;\n    padding-left: 30px;\n}\n\n#tinymce ul li, .free-input ul li {\n      position: relative;\n      padding-left: 15px;\n      margin-bottom: 0;\n      padding-bottom: 15px\n    }\n\n#tinymce ul li:before, .free-input ul li:before {\n  content: \"\";\n  position: absolute;\n  left: -15px;\n  top: 15px;\n  height: calc(100% - 13px);\n  display: block;\n  width: 1px;\n  background: #E3E5E6;\n}\n\n#tinymce ul li:last-child:before, .free-input ul li:last-child:before {\n  height: calc(100% - 30px);\n}\n\n.body-wrapper >.page-wrapper {\n    position: relative;\n    padding-top: 118px;\n  }\n\n.admin-bar .body-wrapper >.page-wrapper {\n      padding-top: 86px;\n    }\n\n@media screen and (max-width: 1280px) {\n\n  .body-wrapper >.page-wrapper {\n    padding-top: 86px;\n  }\n\n  .admin-bar .body-wrapper >.page-wrapper {\n        padding-top: 54px;\n  }\n}\n\n.bg-blur.active {\n  background: #042C38;\n  opacity: 0.1;\n  position: fixed;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  z-index: 900;\n}\n\nheader {\n  position: fixed;\n  top: 0;\n  left: 0;\n  right: 0;\n  z-index: 1000;\n  background: #FFF;\n  transition: transform 0.3s ease-in-out\n}\n\nheader.scroll-up-enabled.scroll-down {\n  transform: translateY(-100%);\n}\n\nheader .custom-logo {\n    max-width: 212px;\n    height: auto;\n}\n\n@media screen and (max-width: 1280px) {\n\n  header .custom-logo {\n    max-width: 150px;\n  }\n}\n\n.admin-bar header {\n    /*top: 32px;*/\n}\n\nheader > .container {\n    padding-top: 24px;\n    padding-bottom: 24px;\n    position: relative;\n}\n\nheader .nav-wrapper {\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    flex-direction: row;\n    align-items:center;\n    justify-content: space-between;\n}\n\nheader a.logo {\n    display: block;\n}\n\nheader .header-navigation nav > ul li a svg {\n              display: none;\n            }\n\nheader nav {\n    display: block;\n}\n\nheader nav > ul {\n      display: block;\n      margin: 0;\n      padding: 0;\n      list-style: none;\n      display: -webkit-box;\n      display: -ms-flexbox;\n      display: flex;\n      gap: 24px;\n      flex-direction: row;\n      align-items: center;\n    }\n\n@media screen and (max-width: 1536px) {\n\n  header nav > ul {\n    gap: 12px;\n  }\n}\n\nheader nav > ul li a, header nav > ul li span {\n          font-size: 16px;\n        }\n\nheader nav > ul li a .dropdown, header nav > ul li span .dropdown {\n            display: none;\n          }\n\nheader .mobile {\n    padding-left: 20px;\n    margin-left: 20px;\n    border-left: 1px solid #CFCFCF;\n    height: 30px;\n    position: relative;\n    display: none;\n}\n\n@media screen and (max-width: 1280px) {\n\n  header .mobile {\n    padding-left: 0px;\n    margin-left: 0px;\n    border-left: 0;\n  }\n}\n\nheader .mobile-main {\n    display: none;\n    align-items: center;\n    justify-content: flex-start;\n    font-size: 16px;\n}\n\nheader .search-mobile {\n    display: none;\n}\n\nheader .resp-menu-selector {\n    position: absolute;\n    top: 50%;\n    display: none;\n    width: 40px;\n    height: 30px;\n    position: relative;\n    margin: 0;\n    margin-top: -20px;\n    transform: rotate(0deg);\n    transition: .5s ease-in-out;\n    cursor: pointer;\n}\n\n.resp-menu-open header .resp-menu-selector span:nth-child(1),.resp-menu-open header .resp-menu-selector span:nth-child(6) {\n        transform: rotate(45deg);\n      }\n\n.resp-menu-open header .resp-menu-selector span:nth-child(2),.resp-menu-open header .resp-menu-selector span:nth-child(5) {\n        transform: rotate(-45deg);\n      }\n\n.resp-menu-open header .resp-menu-selector span:nth-child(1) {\n        left: 5px;\n        top: 13px;\n      }\n\n.resp-menu-open header .resp-menu-selector span:nth-child(2) {\n        left: calc(50% - 5px);\n        top: 13px;\n      }\n\n.resp-menu-open header .resp-menu-selector span:nth-child(3) {\n        left: -50%;\n        opacity: 0;\n      }\n\n.resp-menu-open header .resp-menu-selector span:nth-child(4) {\n        left: 100%;\n        opacity: 0;\n      }\n\n.resp-menu-open header .resp-menu-selector span:nth-child(5) {\n        left: 5px;\n        top: 23px;\n      }\n\n.resp-menu-open header .resp-menu-selector span:nth-child(6) {\n        left: calc(50% - 5px);\n        top: 23px;\n      }\n\nheader .resp-menu-selector span {\n      display: block;\n      position: absolute;\n      height: 4px;\n      width: 50%;\n      background: #D53737;\n      opacity: 1;\n      transform: rotate(0deg);\n      transition: .25s ease-in-out\n    }\n\nheader .resp-menu-selector span:nth-child(even) {\n  left: 50%;\n  border-radius: 0 9px 9px 0;\n}\n\nheader .resp-menu-selector span:nth-child(odd) {\n  left:0px;\n  border-radius: 9px 0 0 9px;\n}\n\nheader .resp-menu-selector span:nth-child(1), header .resp-menu-selector span:nth-child(2) {\n  top: 5px;\n}\n\nheader .resp-menu-selector span:nth-child(3), header .resp-menu-selector span:nth-child(4) {\n  top: 18px;\n}\n\nheader .resp-menu-selector span:nth-child(5), header .resp-menu-selector span:nth-child(6) {\n  top: 31px;\n}\n\n@media screen and (max-width: 1280px) {\n\n  header .resp-menu-selector {\n    display: block;\n  }\n}\n\nheader .user-navigation li {\n      position: relative;\n    }\n\n@media screen and (max-width: 1280px) {\n\n  header .user-navigation li {\n        display: none;\n  }\n\n  header .user-navigation .mobile {\n        display: block;\n  }\n}\n\n@media screen and (max-width: 768px) {\n\n  header .user-navigation li {\n        display: none;\n  }\n\n  header .user-navigation li.mobile {\n    display: block;\n  }\n}\n\nheader .header-navigation > nav > ul > li > a {\n      font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n      font-weight: bold;\n      color: #081C24\n    }\n\nheader .header-navigation li {\n      position: relative;\n    }\n\nheader .header-navigation .toggleMoreLinks {\n      display: block;\n      position: relative;\n      width: 9px;\n      height: 3px;\n      cursor: pointer;\n      padding: 11px 0;\n    }\n\nheader .header-navigation .toggleMoreLinks span {\n        width: 3px;\n        height: 3px;\n        background: #001924;\n        display: block;\n        border-radius: 50%;\n        margin: auto;\n        transition: .5s ease all;\n      }\n\nheader .header-navigation .toggleMoreLinks span.first,\n      header .header-navigation .toggleMoreLinks span.third {\n        position: absolute;\n        top: 50%;\n      }\n\nheader .header-navigation .toggleMoreLinks span.first {\n        left: -3px;\n      }\n\nheader .header-navigation .toggleMoreLinks span.third {\n        right: -3px;\n      }\n\n@media screen and (max-width: 1280px) {\n\n  header .header-navigation {\n    display: none;\n    position: fixed;\n    top: 0;\n    left: 0;\n    right: 0;\n    background: #FFF;\n    margin-top: 118px;\n    height: calc(100% - 118px);\n    overflow: auto;\n    border-top: 1px solid #CFCFCF;\n  }\n        header .header-navigation > nav > ul {\n          flex-direction: column;\n          gap: 0;\n        }\n\n  header .header-navigation nav {\n        padding: 15px;\n  }\n          header .header-navigation nav > ul > li {\n            display: -webkit-box;\n            display: -ms-flexbox;\n            display: flex;\n            flex-direction: column;\n            width: 100%;\n            border-bottom: 1px solid #CFCFCF\n          }\n          header .header-navigation nav > ul > li.mobile-main {\n    display: none;\n  }\n          header .header-navigation nav > ul > li.search-mobile {\n    display: none;\n  }\n          header .header-navigation nav > ul > li > a {\n              font-size: 22px;\n              padding: 30px 15px;\n              display: block;\n              display: -webkit-box;\n              display: -ms-flexbox;\n              display: flex;\n              justify-content: space-between;\n              align-items: center;\n              transition: all 0.3s ease;\n  }\n          header .header-navigation nav > ul > li > a.toggleMoreLinks {\n    width: 100%;\n    height: 80px;\n  }\n          header .header-navigation nav > ul > li > a.toggleMoreLinks span.first {\n                  left: 15px;\n  }\n          header .header-navigation nav > ul > li > a.toggleMoreLinks span.second {\n                  left: 25px;\n                  top: 50%;\n                  position: absolute;\n  }\n          header .header-navigation nav > ul > li > a.toggleMoreLinks span.third {\n                  left: 35px;\n                  right: auto;\n  }\n          header .header-navigation nav > ul > li > a.toggleMoreLinks svg {\n                  position: absolute;\n                  right: 15px;\n                  top: 50%;\n                  margin-top: -12px;\n  }\n          header .header-navigation nav > ul > li > a svg {\n                display: inline-block;\n                transform: rotate(0deg);\n                transition: all 0.3s ease;\n  }\n\n                header .header-navigation nav > ul > li > a svg path {\n                  transition: all 0.3s ease;\n                }\n          header .header-navigation nav > ul > li.open > a {\n                background: #D53737;\n                color: #FFF;\n  }\n          header .header-navigation nav > ul > li.open > a.toggleMoreLinks span.first,header .header-navigation nav > ul > li.open > a.toggleMoreLinks span.second,header .header-navigation nav > ul > li.open > a.toggleMoreLinks span.third {\n                    background: #FFF;\n  }\n          header .header-navigation nav > ul > li.open > a svg {\n                  transform: rotate(90deg);\n  }\n\n                  header .header-navigation nav > ul > li.open > a svg path {\n                    fill: #FFF;\n                  }\n          header .header-navigation nav > ul > li .dropdown {\n              position: relative;\n              opacity: 1;\n              visibility: visible;\n              top: auto;\n              left: auto;\n              display: none;\n  }\n          header .header-navigation nav > ul > li .dropdown.dropdown-navigation-detailed {\n    width: auto;\n  }\n          header .header-navigation nav > ul > li .dropdown.dropdown-navigation ul {\n                  width: auto;\n                  display: -webkit-box;\n                  display: -ms-flexbox;\n                  display: flex;\n                  flex-direction: column;\n                  flex-wrap: wrap;\n                  padding: 20px 0;\n  }\n                    header .header-navigation nav > ul > li .dropdown.dropdown-navigation ul li a:before {\n    display: none;\n  }\n                    header .header-navigation nav > ul > li .dropdown.dropdown-navigation ul li a {\n    border-radius: 4px;\n  }\n\n  .resp-menu-open header .header-navigation {\n        /*display: block;*/\n  }\n}\n\n@media screen and (max-width: 1024px) {\n              header .header-navigation nav > ul > li .dropdown .about {\n                grid-template-columns: 1.5fr 1fr;\n                gap: 20px;\n                grid-auto-rows: auto;\n              }\n\n\n\n                header .header-navigation nav > ul > li .dropdown .about .organization {\n                }\n                  header .header-navigation nav > ul > li .dropdown .about .stories-of-change .title, header .header-navigation nav > ul > li .dropdown .about .stories-of-change .content {\n                    justify-content: flex-start;\n                  }\n\n              header .header-navigation nav > ul > li .dropdown .ecosystem {\n                grid-template-columns: 1.5fr 1fr;\n                gap: 20px;\n                grid-auto-rows: auto;\n              }\n}\n\n@media screen and (max-width: 768px) {\n          header .header-navigation nav > ul > li.search-mobile {\n    display: none;\n  }\n          header .header-navigation nav > ul > li.search-mobile.visible {\n    display: block;\n  }\n          header .header-navigation nav > ul > li.mobile-main {\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n            flex-direction: row;\n    gap: 10px;\n            align-items: center;\n            justify-content: center;\n    padding-bottom: 20px;\n  }\n          header .header-navigation nav > ul > li.mobile-main a {\n                font-size: 16px;\n                padding: 10px 15px;\n  }\n              header .header-navigation nav > ul > li .dropdown .about {\n                grid-template-columns:1fr;\n                gap: 60px;\n              }\n\n              header .header-navigation nav > ul > li .dropdown .ecosystem {\n                grid-template-columns:1fr;\n                gap: 60px;\n              }\n}\n\nheader.auth .alt-wrapper {\n      display: -webkit-box;\n      display: -ms-flexbox;\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      border-bottom: 1px solid #E3EAEC;\n      padding: 20px;\n}\n\n@media screen and (max-width: 768px) {\n\n  header.auth .alt-wrapper {\n      flex-direction: row-reverse;\n  }\n\n  header.auth .alt-wrapper .spacer {\n          display: none;\n  }\n}\n\nheader.auth .back a {\n        display: -webkit-box;\n        display: -ms-flexbox;\n        display: flex;\n        align-items: center;\n        font-family: 'Helvetica Neue';\n        font-style: normal;\n        font-weight: 700;\n        font-size: 16px;\n        line-height: 140%;\n        color: #081C24;\n      }\n\nheader.auth .back a svg {\n          position: relative;\n          margin-right: 5px;\n          transition: all 0.3s ease-in-out;\n        }\n\nheader.auth .back a:hover svg {\n            transform: translateX(-15px);\n}\n\n.header-navigation-mobile {\n  display: none;\n  position: fixed;\n  top: 0;\n  left: 0;\n  right: 0;\n  background: #FFF;\n  margin-top: 86px;\n  height: calc(100% - 86px);\n  overflow: auto;\n  border-top: 1px solid #CFCFCF;\n  z-index: 99999;\n\n}\n\n.header-navigation-mobile li > a:hover,\n    .header-navigation-mobile li > span:hover {\n      background: #D53737 !important;\n      color: #FFF !important;\n      cursor: pointer;\n      transition: all 0.3s ease-in-out;\n    }\n\n.header-navigation-mobile li > a:hover .s3, .header-navigation-mobile li > span:hover .s3 {\n        color: #FFF !important;\n        transition: all 0.3s ease-in-out;\n      }\n\n/*transform: rotate(90deg);*/\n\n.header-navigation-mobile li > a:hover svg path, .header-navigation-mobile li > span:hover svg path {\n          stroke: #FFF !important;\n        }\n\n.header-navigation-mobile > nav {\n    padding: 15px;\n  }\n\n.header-navigation-mobile > nav > ul {\n      flex-direction: column;\n      gap: 0;\n      padding: 0;\n    }\n\n.header-navigation-mobile > nav > ul > li {\n        display: -webkit-box;\n        display: -ms-flexbox;\n        display: flex;\n        flex-direction: column;\n        width: 100%;\n        border-bottom: 1px solid #F5F5F5\n      }\n\n.header-navigation-mobile > nav > ul > li.buttons {\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n        justify-content: center;\n  gap: 0 15px;\n        flex-direction: row;\n  padding: 24px 0;\n  border-bottom: 0;\n}\n\n.header-navigation-mobile > nav > ul > li.buttons > a,\n          .header-navigation-mobile > nav > ul > li.buttons span {\n            padding: 10px 0px;\n            width: 50%;\n            justify-content: center;\n            cursor: pointer;\n}\n\n.header-navigation-mobile > nav > ul > li.no-extra {\n  border-bottom: 0;\n}\n\n.header-navigation-mobile > nav > ul > li.no-extra:first-child {\n  margin-top: 30px;\n}\n\n.header-navigation-mobile > nav > ul > li.no-extra a,\n          .header-navigation-mobile > nav > ul > li.no-extra span {\n            padding: 0;\n            margin: 0;\n            font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n            font-weight: 500;\n            font-size: 16px;\n            cursor: pointer;\n            display: block;\n            padding: 15px;\n}\n\n.header-navigation-mobile > nav > ul > li > a,\n        .header-navigation-mobile > nav > ul > li > span {\n          font-size: 18px;\n          padding: 12px 8px;\n          display: block;\n          display: -webkit-box;\n          display: -ms-flexbox;\n          display: flex;\n          justify-content: space-between;\n          align-items: center;\n          transition: all 0.3s ease;\n          color: #081C24;\n          font-weight: bold;\n          margin-top: 15px;\n          cursor: pointer;\n}\n\n.header-navigation-mobile > nav > ul > li > a svg, .header-navigation-mobile > nav > ul > li > span svg {\n            display: inline-block;\n            transform: rotate(0deg);\n            transition: all 0.3s ease;\n          }\n\n.header-navigation-mobile > nav > ul > li > a svg path, .header-navigation-mobile > nav > ul > li > span svg path {\n              transition: all 0.3s ease;\n            }\n\n.header-navigation-mobile > nav > ul > li.open > a,\n          .header-navigation-mobile > nav > ul > li.open > span {\n            background: #D53737;\n            color: #FFF;\n            cursor: pointer;\n}\n\n/*transform: rotate(90deg);*/\n\n.header-navigation-mobile > nav > ul > li.open > a svg path, .header-navigation-mobile > nav > ul > li.open > span svg path {\n                stroke: #FFF;\n              }\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile {\n          background: #FFF;\n          position: fixed;\n          opacity: 1;\n          visibility: visible;\n          top: 100px;\n          left: 100%;\n          width: 100%;\n          height: calc(100% - 100px);\n          z-index: 9;\n          overflow: auto;\n          transition: left 1s ease-in-out;\n}\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > span.title {\n            display: block;\n            font-size: 18px;\n            line-height: 140%;\n            display: -webkit-box;\n            display: -ms-flexbox;\n            display: flex;\n            align-items: center;\n            justify-content: flex-start;\n            border-bottom: 1px solid #D53737;\n            padding: 12px 20px;\n            font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n            margin-bottom: 40px;\n            cursor: pointer;\n          }\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > span.title svg {\n              margin-right: 17px;\n              cursor: pointer;\n            }\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul {\n            list-style: none;\n            padding: 0 20px;\n          }\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li {\n              margin-bottom: 15px;\n\n            }\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > a,\n              .header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > span {\n                margin: 0;\n                padding: 12px 8px;\n                border-bottom: 1px solid #F5F5F5;\n                display: block;\n                cursor: pointer;\n\n              }\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > a span, .header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > span span {\n                  margin: 0;\n                }\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > a:before, .header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > span:before {\n  display: none;\n}\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > a.has-dropdown, .header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > span.has-dropdown {\n                justify-content: space-between;\n                align-items: center;\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  width: 100%;\n}\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > a.has-dropdown span, .header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > span.has-dropdown span {\n                    margin: 0;\n                    display: inline-block;\n                    cursor: pointer;\n}\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > a.has-dropdown svg, .header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > span.has-dropdown svg {\n                    transform: rotate(180deg);\n                    transition: all 0.3s ease-in-out;\n                    cursor: pointer;\n}\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > a.has-dropdown svg path, .header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > span.has-dropdown svg path {\n                      transition: all 0.3s ease-in-out;\n                    }\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > a.has-dropdown + ul, .header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > span.has-dropdown + ul {\n  display: none;\n  padding: 0;\n  list-style: none;\n  margin-top: 15px;\n}\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > a.has-dropdown + ul > li a,.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > a.has-dropdown + ul > li span,.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > span.has-dropdown + ul > li a,.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > span.has-dropdown + ul > li span {\n                        padding: 12px 8px;\n                        margin: 0;\n                        opacity: 0.7;\n                        border-bottom: 1px solid #F5F5F5;\n                        font-size: 14px;\n                        line-height: 140%;\n                        font-weight: 500;\n                        cursor: pointer;\n                      }\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > a.has-dropdown + ul > li:last-child, .header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > span.has-dropdown + ul > li:last-child {\n  border-bottom: 0;\n}\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li.open-mobile-stage-2 a,\n                .header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li.open-mobile-stage-2 span {\n                  cursor: pointer;\n}\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li.open-mobile-stage-2 a.has-dropdown svg, .header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li.open-mobile-stage-2 span.has-dropdown svg {\n                      transform: rotate(90deg);\n                      cursor: pointer;\n}\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li.open-mobile-stage-2 a.has-dropdown svg path, .header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li.open-mobile-stage-2 span.has-dropdown svg path {\n                        stroke: #D53737;\n                      }\n\n.header-navigation-mobile > nav > ul > li.open-mobile-stage-1 .dropdown-navigation-mobile {\n  left: 0;\n        box-shadow: -3px 5px 5px 1px rgba(0, 0, 0, .05);\n}\n\n@media screen and (max-width: 1280px) {\n\n  .resp-menu-open .header-navigation-mobile {\n      display: block;\n  }\n}\n\n.header-navigation-mobile .search-navigation,\n  .header-navigation-mobile .search-navigation.inline {\n    color: #cacaca;\n    padding: 0;\n}\n\n.header-navigation-mobile .search-navigation .search-bar, .header-navigation-mobile .search-navigation.inline .search-bar {\n      background: transparent;\n      border-bottom: 0px;\n      border-radius: 0;\n    }\n\n.header-navigation-mobile .search-navigation .search-bar-wrapper input, .header-navigation-mobile .search-navigation.inline .search-bar-wrapper input {\n        color: #b3b3b3;\n      }\n\n.header-navigation-mobile .search-navigation .search-bar-wrapper .controls, .header-navigation-mobile .search-navigation.inline .search-bar-wrapper .controls {\n        gap:0;\n      }\n\n.header-navigation-mobile .search-navigation .search-bar-wrapper .controls .search-toggle-mobile, .header-navigation-mobile .search-navigation.inline .search-bar-wrapper .controls .search-toggle-mobile {\n          display: none;\n        }\n\n.header-navigation-mobile .search-navigation .search-bar-wrapper .controls #load-results, .header-navigation-mobile .search-navigation.inline .search-bar-wrapper .controls #load-results {\n          padding-right: 0;\n        }\n\n.header-navigation-mobile .search-navigation .search-bar-wrapper .controls > li a,\n          .header-navigation-mobile .search-navigation .search-bar-wrapper .controls > li span,\n          .header-navigation-mobile .search-navigation.inline .search-bar-wrapper .controls > li a,\n          .header-navigation-mobile .search-navigation.inline .search-bar-wrapper .controls > li span {\n            padding: 0;\n          }\n\n.header-navigation-mobile .search-navigation .search-suggestion-wrapper h5, \n      .header-navigation-mobile .search-navigation .search-suggestion-wrapper h6, \n      .header-navigation-mobile .search-navigation.inline .search-suggestion-wrapper h5, \n      .header-navigation-mobile .search-navigation.inline .search-suggestion-wrapper h6 {\n        color: #042C38;\n      }\n\n.header-navigation-mobile .search-navigation .search-suggestion-wrapper .search-v1 a, .header-navigation-mobile .search-navigation.inline .search-suggestion-wrapper .search-v1 a {\n          color: #042C38;\n        }\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading {\n    display: none;\n    text-align: center;\n    border-top: 1px solid #E3EAEC;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading.visible {\n  display: block;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .ldio-oruce3mgeyp div {\n      width: 5px;\n      height: 10px;\n      background: #042C38;\n      transform-origin: 5px 27px;\n      left: 25px;\n      top: 0;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .ldio-oruce3mgeyp div:nth-child(1) {\n    background: #042C38;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .ldio-oruce3mgeyp div:nth-child(2) {\n    background: #042C38;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .ldio-oruce3mgeyp div:nth-child(3) {\n    background: #042C38;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .ldio-oruce3mgeyp div:nth-child(4) {\n    background: #042C38;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .ldio-oruce3mgeyp div:nth-child(5) {\n    background: #042C38;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .ldio-oruce3mgeyp div:nth-child(6) {\n    background: #042C38;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .ldio-oruce3mgeyp div:nth-child(7) {\n    background: #042C38;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .ldio-oruce3mgeyp div:nth-child(8) {\n    background: #042C38;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .ldio-oruce3mgeyp div:nth-child(9) {\n    background: #042C38;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .ldio-oruce3mgeyp div:nth-child(10) {\n    background: #042C38;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .ldio-oruce3mgeyp div:nth-child(11) {\n    background: #042C38;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .ldio-oruce3mgeyp div:nth-child(12) {\n    background: #042C38;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .loadingio-spinner-spinner-v7b2k0aigi {\n      width: 60px;\n      height: 60px;\n      margin: 20px 0;\n}\n\n.dropdown-navigation {\n  display: block;\n  position: absolute;\n  opacity: 0;\n  visibility: hidden;\n  transition: all 0.3s ease;\n  top: 71px;\n  left: -50px;\n  z-index: 400;\n}\n\n/*\n  .admin-bar & {\n    top: 71px;\n  }*/\n\n.visible .dropdown-navigation {\n    opacity: 1;\n    visibility: visible;\n  }\n\n.dropdown-navigation > ul {\n    margin-top: 4px;\n    background: #FFF;\n    border-radius: 8px;\n    list-style: none;\n    width: 350px;\n    padding: 0;\n  }\n\n.dropdown-navigation > ul li {\n      position: relative\n      \n      \n\n    }\n\n.dropdown-navigation > ul li:first-child a {\n          border-top-left-radius: 8px;\n          border-top-right-radius: 8px;\n}\n\n.dropdown-navigation > ul li:last-child a {\n          border-bottom-left-radius: 8px;\n          border-bottom-right-radius: 8px;\n}\n\n.dropdown-navigation > ul li a {\n        padding: 18px 24px;\n        display: block;\n        transition: all 0.3s ease;\n        position: relative;\n}\n\n.dropdown-navigation > ul li a .sub-arrow {\n          transition: all 0.3s ease;\n          display: block;\n          position: absolute;\n          transform: rotate(180deg);\n          top: 14px;\n          right: 24px;\n          \n        }\n\n.dropdown-navigation > ul li a .sub-arrow path {\n            stroke: #042C38;\n          }\n\n.dropdown-navigation > ul li a:before {\n  content: \"\";\n  position: absolute;\n  bottom: 0;\n  left: 24;\n  width: calc(100% - 48px);\n  height: 1px;\n  background: #E3EAEC;\n  opacity: 1;\n  transition: all 0.3s ease;\n}\n\n.dropdown-navigation > ul li a:hover {\n  background: #D53737;\n}\n\n.dropdown-navigation > ul li a:hover .s3 {\n            color: #FFF;\n}\n\n.dropdown-navigation > ul li a:hover .b4 {\n            color: #FFF;\n}\n\n.dropdown-navigation > ul li a:hover:before {\n  opacity: 0;\n}\n\n.dropdown-navigation > ul li:last-child a {\n          border-bottom: 0;\n}\n\n.dropdown-navigation > ul li .sub-nav {\n        display: none;\n        position: absolute;\n        top: 0;\n        left: 100%; \n        padding-left: 20px;\n        width: 100%; \n        z-index: 500;\n}\n\n.dropdown-navigation > ul li .sub-nav ul {\n          left: 100%; \n          padding: 0;\n          background: #FFF;\n          border-radius: 8px;\n          list-style: none;\n          width: 100%;\n        }\n\n.dropdown-navigation > ul li .sub-nav ul li {\n            list-style: none;\n          }\n\n.dropdown-navigation > ul li .sub-nav ul li a {\n              padding: 10px 15px;\n              transition: all 0.3s ease;\n            }\n\n.dropdown-navigation > ul li:hover a .sub-arrow {\n            opacity: 1;\n            visibility: visible;\n            transform: rotate(0deg);\n          }\n\n.dropdown-navigation > ul li:hover a .sub-arrow path {\n              stroke: #D53737;\n            }\n\n.dropdown-navigation > ul li:hover .sub-nav {\n          display: block; /* Revealing the submenu*/\n}\n\n.dropdown-navigation > ul .s3 {\n      transition: all 0.3s ease;\n      margin: 0;\n    }\n\n.dropdown-navigation > ul .b4 {\n      margin: 10px 0 0;\n      color: #042C38;\n      opacity: 0.5;\n      margin: 5px 0 0;\n      transition: all 0.3s ease;\n    }\n\n.dropdown-navigation-detailed {\n  display: inline-block;\n  position: absolute;\n  opacity: 0;\n  visibility: hidden;\n  transition: all 0.3s ease;\n  top: 71px;\n  left: -150px\n/*\n  .admin-bar & {\n    top: 71px;\n  }*/\n}\n\n.dropdown-navigation-detailed.research {\n  left: -300px;\n}\n\n.dropdown-navigation-detailed.single {\n  width: 350px;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .dropdown-navigation-detailed {\n    left: -50px;\n  }\n}\n\n.dropdown-navigation-detailed {\n  z-index: 950;\n  width: 1054px;\n}\n\n.visible .dropdown-navigation-detailed {\n    opacity: 1;\n    visibility: visible;\n}\n\n.dropdown-navigation-detailed p, .dropdown-navigation-detailed a, .dropdown-navigation-detailed h1, .dropdown-navigation-detailed h2, .dropdown-navigation-detailed h3, .dropdown-navigation-detailed h4, .dropdown-navigation-detailed h5, .dropdown-navigation-detailed h6 {\n    color: #042C38;\n}\n\n.dropdown-navigation-detailed p, .dropdown-navigation-detailed a {\n    font-size: 14px;\n    font-weight: 500;\n}\n\n.dropdown-navigation-detailed .about {\n    display: grid;\n    grid-gap: 40px;\n    gap: 40px;\n    grid-auto-rows: 1fr;\n    grid-template-columns: 1.5fr 1fr 2fr;\n    grid-template-columns: 1.4fr 1.3fr 2fr;\n    margin-top: 4px;\n    border-radius: 8px;\n    background: #FFF;\n    padding: 30px;\n}\n\n.dropdown-navigation-detailed .about .s3 {\n      margin: 0;\n    }\n\n.dropdown-navigation-detailed .about .organization .button_wrapper {\n        border-top: 1px solid #E3EAEC;\n        padding-top: 15px;\n      }\n\n.dropdown-navigation-detailed .about .organization .button_wrapper .btn {\n          font-style: normal;\n          font-weight: 700;\n          font-size: 14px;\n          line-height: 100%;\n          color: #042C38;\n          display: inline-block;\n        }\n\n.dropdown-navigation-detailed .about .organization .b3 {\n        opacity: 0.7;\n      }\n\n.dropdown-navigation-detailed .about .organization:hover .button_wrapper .btn.arrow {\n            padding-right: 25px;\n          }\n\n.dropdown-navigation-detailed .about .our-scientists ul {\n        list-style: none;\n        padding-left: 0;\n      }\n\n.dropdown-navigation-detailed .about .our-scientists ul li {\n          margin-bottom: 15px;\n        }\n\n.dropdown-navigation-detailed .about .our-scientists ul a:hover {\n  text-decoration: underline;\n}\n\n.dropdown-navigation-detailed .about .stories-of-change #header-slider-down {\n        opacity: 0.4;\n      }\n\n.dropdown-navigation-detailed .about .stories-of-change .title, .dropdown-navigation-detailed .about .stories-of-change .content {\n        display: -webkit-box;\n        display: -ms-flexbox;\n        display: flex;\n        justify-content: flex-end;\n      }\n\n.dropdown-navigation-detailed .about .stories-of-change .restrict-width {\n        width: 100%;\n        max-width: 400px;\n        padding-left: 40px;\n        position: relative;\n      }\n\n.dropdown-navigation-detailed .about .stories-of-change .restrict-width .s3 {\n          display: -webkit-box;\n          display: -ms-flexbox;\n          display: flex;\n          justify-content: space-between;\n          align-items: center;\n        }\n\n.dropdown-navigation-detailed .about .stories-of-change .restrict-width .s3 a {\n            font-size: 12px;\n            text-decoration: underline\n          }\n\n.dropdown-navigation-detailed .about .stories-of-change .restrict-width .s3 a:hover {\n  text-decoration: none;\n}\n\n.dropdown-navigation-detailed .about .stories-of-change .content .restrict-width .custom-slider-arrows {\n            position: absolute;\n            bottom: 0;\n            left: 0;\n\n            display: -webkit-box;\n\n            display: -ms-flexbox;\n\n            display: flex;\n            flex-direction: column;\n          }\n\n.dropdown-navigation-detailed .about .stories-of-change .content .restrict-width .custom-slider-arrows svg {\n              cursor: pointer;\n              transition: all 0.3s ease;\n              transform: scale(1)\n            }\n\n.dropdown-navigation-detailed .about .stories-of-change .content .restrict-width .custom-slider-arrows svg:hover {\n              transform: scale(1.5);\n}\n\n.dropdown-navigation-detailed .about .stories-of-change .content .restrict-width .custom-slider {\n            padding-top: 80px;\n            position: relative;\n          }\n\n.dropdown-navigation-detailed .about .stories-of-change .stories-of-change-card-small {\n        background: #F5F5F5;\n        border-radius: 8px;\n        display: -webkit-box;\n        display: -ms-flexbox;\n        display: flex;\n        flex-direction: row;\n        align-items: flex-start;\n        padding: 15px;\n        gap: 24px;\n        position: absolute;\n        right: 0;\n        left: 0;\n        box-shadow: 2px -1px 24px rgba(0, 0, 0, .12)\n      }\n\n.dropdown-navigation-detailed .about .stories-of-change .stories-of-change-card-small:first-child {\n  position: relative;\n  z-index: 4;\n}\n\n.dropdown-navigation-detailed .about .stories-of-change .stories-of-change-card-small:nth-child(2) {\n  bottom: 40px;\n  z-index: 3;\n}\n\n.dropdown-navigation-detailed .about .stories-of-change .stories-of-change-card-small:nth-child(3) {\n  bottom: 80px;\n  z-index: 2;\n}\n\n.dropdown-navigation-detailed .about .stories-of-change .stories-of-change-card-small h4 {\n            color: #042C38;\n}\n\n.dropdown-navigation-detailed .about .stories-of-change .stories-of-change-card-small span {\n          border-bottom: 1px solid #D53737;\n          transition:all 0.3s ease;\n}\n\n.dropdown-navigation-detailed .about .stories-of-change .stories-of-change-card-small .image-wrapper {\n            width: 117px;\n            height: 127px;\n            flex-shrink: 0;\n}\n\n.dropdown-navigation-detailed .about .stories-of-change .stories-of-change-card-small:hover span {\n            border-bottom: 1px solid transparent;\n}\n\n.dropdown-navigation-detailed .our-science {\n    display: grid;\n    grid-gap: 40px;\n    gap: 40px;\n    grid-auto-rows: 1fr;\n    grid-template-columns: 1fr;\n    margin-top: 4px;\n    border-radius: 8px;\n    background: #FFF;\n    padding: 30px;\n}\n\n.dropdown-navigation-detailed .our-science ul {\n      list-style: none;\n      padding: 0;\n    }\n\n.dropdown-navigation-detailed .our-science ul li {\n        margin-bottom: 5px;\n      }\n\n.dropdown-navigation-detailed .our-science ul li a:hover span.s3 {\n              text-decoration: underline;\n}\n\n.dropdown-navigation-detailed .our-science ul li.divider {\n  border-bottom: 1px solid #E3EAEC;\n  margin: 5px 0;\n  padding: 0;\n}\n\n.dropdown-navigation-detailed .our-science .organization .button_wrapper {\n        border-top: 1px solid #E3EAEC;\n        padding-top: 15px;\n      }\n\n.dropdown-navigation-detailed .our-science .organization .button_wrapper .btn {\n          font-style: normal;\n          font-weight: 700;\n          font-size: 14px;\n          line-height: 100%;\n          color: #042C38;\n          display: inline-block;\n        }\n\n.dropdown-navigation-detailed .our-science .organization .b3 {\n        opacity: 0.7;\n      }\n\n.dropdown-navigation-detailed .our-science .organization:hover .button_wrapper .btn.arrow {\n            padding-right: 25px;\n          }\n\n.dropdown-navigation-detailed .ecosystem {\n    display: grid;\n    grid-gap: 40px;\n    gap: 40px;\n    grid-auto-rows: 1fr;\n    grid-template-columns: 1.5fr 1fr 2fr;\n    margin-top: 4px;\n    border-radius: 8px;\n    background: #FFF;\n    padding: 30px;\n}\n\n.dropdown-navigation-detailed .ecosystem .s3 {\n      margin: 0;\n    }\n\n.dropdown-navigation-detailed .ecosystem .support-team .button_wrapper {\n        border-top: 1px solid #E3EAEC;\n        padding-top: 15px;\n      }\n\n.dropdown-navigation-detailed .ecosystem .support-team .button_wrapper .btn {\n          font-style: normal;\n          font-weight: 700;\n          font-size: 14px;\n          line-height: 100%;\n          color: #042C38;\n          display: inline-block;\n        }\n\n.dropdown-navigation-detailed .ecosystem .support-team .b3 {\n        opacity: 0.7;\n      }\n\n.dropdown-navigation-detailed .ecosystem .support-team:hover .button_wrapper .btn.arrow {\n            padding-right: 25px;\n          }\n\n.dropdown-navigation-detailed .ecosystem .teams ul {\n        list-style: none;\n        padding-left: 0;\n      }\n\n.dropdown-navigation-detailed .ecosystem .teams ul li {\n          margin-bottom: 10px;\n        }\n\n.dropdown-navigation-detailed .ecosystem .teams ul a {\n          margin: 0\n        }\n\n.dropdown-navigation-detailed .ecosystem .teams ul a:hover {\n  text-decoration: underline;\n}\n\n.dropdown-navigation-detailed .ecosystem .projects .content {\n        display: -webkit-box;\n        display: -ms-flexbox;\n        display: flex;\n        gap: 40px;\n      }\n\n.dropdown-navigation-detailed .ecosystem .projects .content ul{\n          padding: 0;\n          list-style: none;\n        }\n\n.dropdown-navigation-detailed .ecosystem .projects .content ul li {\n            margin-bottom: 10px;\n          }\n\n.dropdown-navigation-detailed .ecosystem .projects .content ul a {\n            margin: 0\n          }\n\n.dropdown-navigation-detailed .ecosystem .projects .content ul a:hover {\n  text-decoration: underline;\n}\n\n.dropdown-navigation-detailed .title {\n    margin-bottom: 24px;\n}\n\n.dropdown-navigation-detailed .content {\n                }\n\nfooter {\n  display: block;\n  border-radius: 8px;\n  background: #042C38 url(" + ___CSS_LOADER_URL_REPLACEMENT_65___ + ") no-repeat center right;\n  background-size: contain;\n  z-index: 101;\n  position: relative;\n}\n\nfooter .menu {\n    text-align: center;\n  }\n\nfooter .menu nav {\n      display: inline-block;\n    }\n\nfooter .menu .secondary {\n      display: -webkit-box;\n      display: -ms-flexbox;\n      display: flex;\n    }\n\nfooter .menu .secondary a {\n        color: #FFF;\n        border-bottom: 2px solid transparent;\n        transition: all 0.2s ease-in\n      }\n\nfooter .menu .secondary a:hover {\n  border-bottom: 2px solid #FFF;\n}\n\nfooter .top {\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    justify-content: space-between;\n    align-items: flex-start;\n    padding: 40px 64px;\n  }\n\n@media screen and (max-width: 640px) {\n\n  footer .top {\n    padding: 16px 32px 16px;\n  }\n}\n\nfooter .top .menu .secondary {\n        gap: 32px;\n        margin-bottom: 20px;\n      }\n\n@media screen and (max-width: 768px) {\n\n  footer .top .menu .secondary {\n    margin-bottom: 30px;\n  }\n}\n\nfooter .top .menu .social {\n        display: -webkit-box;\n        display: -ms-flexbox;\n        display: flex;\n        gap: 33px;\n        margin-bottom: 0;\n}\n\nfooter .sep {\n    display: block;\n    width: 100%;\n    height: 1px;\n    background: #387E97;\n    opacity: 0.2;\n}\n\nfooter .bottom {\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    justify-content: space-between;\n    align-items: flex-start;\n    padding: 16px 64px 24px;\n}\n\n@media screen and (max-width: 1280px) {\n\n  footer .bottom {\n      flex-wrap: wrap;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  footer .bottom {\n    padding: 16px 32px 24px;\n  }\n}\n\nfooter .bottom .copyright {\n      margin-bottom: 0;\n}\n\nfooter .bottom .info,\n    footer .bottom .menu,\n    footer .bottom .hisq {\n      width: 33%;\n}\n\nfooter .bottom .menu .secondary {\n        gap: 16px;\n      }\n\n@media screen and (max-width: 1280px) {\n\n  footer .bottom .menu {\n    text-align: right;\n  }\n}\n\n@media screen and (max-width: 1280px) {\n\n  footer .bottom .info,\n    footer .bottom .menu {\n    width: 50%;\n  }\n}\n\n@media screen and (max-width: 1024px) {\n\n  footer .bottom .info,\n    footer .bottom .menu {\n    width: 100%;\n    text-align: left;\n    margin: 15px 0;\n  }\n}\n\nfooter .bottom .hisq a {\n        color: #FFF;\n        display: -webkit-box;\n        display: -ms-flexbox;\n        display: flex;\n        align-items: center;\n        justify-content: right;\n        gap: 15px;\n        padding-top: 10px;\n      }\n\nfooter .bottom .hisq a span {\n          font-size: 14px;\n        }\n\n@media screen and (max-width: 1280px) {\n\n  footer .bottom .hisq {\n    margin-top: 35px;\n    width: 100%;\n  }\n}\n\n@media screen and (max-width: 768px) {\n\n  footer .bottom .hisq {\n    margin-top: 5px;\n  }\n}\n\nfooter ul,\n  footer li {\n    list-style: none;\n    padding: 0;\n    margin: 0;\n}\n\nfooter .b1,\n  footer .b3 {\n    color: #FFF;\n}\n\nfooter.auth {\n  background: #FFF;\n  border-top: 1px solid #E3EAEC;\n}\n\nfooter.auth .bottom {\n      padding-left: 0;\n      padding-right: 0;\n}\n\nfooter.auth .b1,\n    footer.auth .b3,\n    footer.auth .bottom .hisq a,\n    footer.auth .menu .secondary a {\n      color: #042C38;\n}\n\nfooter.auth .menu .secondary a {\n          border-bottom: 2px solid transparent;\n          transition: all 0.3s ease\n        }\n\nfooter.auth .menu .secondary a:hover {\n  border-bottom: 2px solid #042C38;\n}\n\n#hero-slider {\n  position: relative;\n  margin-bottom: 20px;\n}\n\n#hero-slider .glide__slide {\n    position: relative;\n    border-radius: 8px;\n    overflow: hidden;\n    height: 750px;\n    height: 705px;\n\n  }\n\n@media screen and (max-width: 1536px) {\n\n  #hero-slider .glide__slide {\n    height: 650px;\n  }\n}\n\n@media screen and (max-width: 1280px) {\n\n  #hero-slider .glide__slide {\n    height: 600px;\n  }\n}\n\n@media screen and (max-width: 1024px) {\n\n  #hero-slider .glide__slide {\n    height: 500px;\n  }\n}\n\n#hero-slider .glide__slide .link {\n      position: absolute;\n      top: 0;\n      left: 0;\n      right: 0;\n      bottom: 0;\n      z-index: 3;\n}\n\n#hero-slider .glide__slide .h2 {\n      position: absolute;\n      left: 30px;\n      bottom: 110px;\n      color: #FFF;\n      width: auto;\n      margin: 0;\n      padding-right: 470px;\n      z-index: 3;\n}\n\n@media screen and (max-width: 1280px) {\n\n  #hero-slider .glide__slide .h2 {\n    bottom: 110px;\n  }\n}\n\n@media screen and (max-width: 1024px) {\n\n  #hero-slider .glide__slide .h2 {\n    bottom: 60px;\n    left: 15px;\n    padding-right: 30px;\n  }\n}\n\n#hero-slider .glide__slide img {\n      display: block;\n      position: absolute;\n      left: 0;\n      top: 0;\n      width: 100%;\n      height: 100%;\n      -o-object-fit: cover;\n         object-fit: cover;\n}\n\n#hero-slider .glide__slide .gradient {\n      position: absolute;\n      left: 0;\n      bottom: 0;\n      width: 100%;\n      height: 60%;\n      background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, .7)));\n      background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, .7) 100%);\n      z-index: 2;\n}\n\n#hero-slider .glide__bullets {\n    position: absolute;\n    bottom: 60px;\n    left: 30px;\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    gap: 12px;\n    justify-content: center;\n    align-items: center;\n    transform: none;\n}\n\n@media screen and (max-width: 1024px) {\n\n  #hero-slider .glide__bullets {\n    left: 15px;\n    bottom: 30px;\n  }\n}\n\n#hero-slider .glide__bullets .glide__bullet {\n      width: 6px;\n      height: 6px;\n      background: #E3EAEC;\n}\n\n#hero-slider .glide__bullets .glide__bullet.glide__bullet--active {\n  width: 14px;\n  height: 14px;\n  background: #D53737;\n}\n\n.notification-wrapper {\n  position: relative;\n}\n\n.notification-wrapper .notifications {\n    position: absolute;\n    bottom: 0;\n    right: 0;\n    padding: 16px;\n    max-width: 280px;\n    width: 100%;\n    overflow: hidden;\n    display: block;\n    max-width: 382px;\n    max-height: 100%;\n  }\n\n.notification-wrapper .notifications .expand_wrapper {\n      display: -webkit-box;\n      display: -ms-flexbox;\n      display: flex;\n      justify-content: flex-end;\n      padding-bottom: 16px;\n      transition: transform 0.3s ease-in\n\n    }\n\n.notification-wrapper .notifications .expand_wrapper.card-0 {\n      transform: translateY(0%);\n}\n\n.notification-wrapper .notifications .expand_wrapper.card-1 {\n      transform: translateY(178%);\n}\n\n.notification-wrapper .notifications .expand_wrapper.card-2 {\n      transform: translateY(360%);\n}\n\n.notification-wrapper .notifications .expand_wrapper.card-3 {\n      transform: translateY(530%);\n}\n\n.notification-wrapper .notifications .expand_wrapper.card-4 {\n      transform: translateY(710%);\n}\n\n.notification-wrapper .notifications .expand_wrapper .expand {\n        background: rgba(255, 255, 255, .5);\n        padding: 5px 10px;\n        color: #081C24;\n        font-weight: 400;\n        border-radius: 100px;\n        font-size: 14px;\n        cursor: pointer;\n        transition: all 0.3s ease;\n}\n\n.notification-wrapper .notifications .expand_wrapper .expand svg path {\n          transition: all 0.3s ease;\n        }\n\n.notification-wrapper .notifications .expand_wrapper .expand .state {\n          display: -webkit-box;\n          display: -ms-flexbox;\n          display: flex;\n          gap: 8px;\n          align-items: center;\n        }\n\n.notification-wrapper .notifications .expand_wrapper .expand .state1 {\n          display: -webkit-box;\n          display: -ms-flexbox;\n          display: flex;\n        }\n\n.notification-wrapper .notifications .expand_wrapper .expand .state2 {\n          display: none;\n        }\n\n.notification-wrapper .notifications .expand_wrapper .expand:hover {\n  background: #D53737;\n  color: #FFF;\n}\n\n.notification-wrapper .notifications .expand_wrapper .expand:hover svg path {\n            stroke: #FFF;\n}\n\n.notification-wrapper .notifications .notification-card {\n      box-shadow: 2px -1px 24px rgba(0, 0, 0, .12);\n      transition: transform 0.3s ease-in\n    }\n\n.notification-wrapper .notifications .notification-card.card-0 {\n      transform: translateY(280%);\n}\n\n.notification-wrapper .notifications .notification-card.card-1 {\n      transform: translateY(210%);\n}\n\n.notification-wrapper .notifications .notification-card.card-2 {\n      transform: translateY(140%);\n}\n\n.notification-wrapper .notifications .notification-card.card-3 {\n      transform: translateY(70%);\n}\n\n.notification-wrapper .notifications .notification-card.card-4 {\n      transform: translateY(0%);\n}\n\n.notification-wrapper .notifications .notification-card .image-wrapper {\n        display: block;\n        flex-shrink: 0;\n\n        display: -webkit-box;\n\n        display: -ms-flexbox;\n\n        display: flex;\n        justify-content: center;\n        align-items: center;\n}\n\n@media screen and (max-width: 1024px) {\n\n  .notification-wrapper .notifications .notification-card .image-wrapper {\n    display: none;\n  }\n}\n\n.notification-wrapper .notifications.expanded {\n  overflow: auto;\n}\n\n.notification-wrapper .notifications.expanded .expand_wrapper {\n        transform: translateY(0%);\n}\n\n.notification-wrapper .notifications.expanded .expand_wrapper .expand .state1 {\n            display: none;\n          }\n\n.notification-wrapper .notifications.expanded .expand_wrapper .expand .state2 {\n            display: -webkit-box;\n            display: -ms-flexbox;\n            display: flex;\n          }\n\n.notification-wrapper .notifications.expanded .notification-card.card-0 {\n      transform: translateY(0%);\n}\n\n.notification-wrapper .notifications.expanded .notification-card.card-1 {\n      transform: translateY(0%);\n}\n\n.notification-wrapper .notifications.expanded .notification-card.card-2 {\n      transform: translateY(0%);\n}\n\n.notification-wrapper .notifications.expanded .notification-card.card-3 {\n      transform: translateY(0%);\n}\n\n.notification-wrapper .notifications.expanded .notification-card.card-4 {\n      transform: translateY(0%);\n}\n\n@media screen and (max-width: 1024px) {\n\n  .notification-wrapper .notifications {\n    max-height: 100%;\n    max-width: none;\n    position: relative;\n    bottom: auto;\n    right: auto;\n    padding: 0;\n    margin-top: 40px;\n  }\n\n  .notification-wrapper .notifications .notification-card {\n        transform: translateY(0%) !important;\n        box-shadow: none;\n        background: #F5F5F5;\n        margin-bottom: 8px;\n  }\n\n        .notification-wrapper .notifications .notification-card .image-wrapper {\n          display: block;\n        }\n\n  .notification-wrapper .notifications .expand_wrapper .expand {\n        display: none;\n  }\n}\n\n.notification-card {\n  margin-bottom: 8px;\n  padding: 16px;\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  gap: 24px;\n  background: #FFF;\n  border-radius: 8px;\n  width: 100%;\n  align-items: top;\n  position: relative;\n  filter: none !important;\n}\n\n.notification-card .image-wrapper {\n    position: relative;\n    width: 85px;\n    height: 92px;\n    border-radius: 4px;\n    filter: none !important;\n\n    width: 111px;\n    height: auto;\n    /* Define your base width (or use height instead) */\n    aspect-ratio: 7 / 5;\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    overflow: hidden;\n\n  }\n\n.notification-card .image-wrapper .blur-bg {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      background-size: cover;\n      background-position: center;\n      filter: url(" + ___CSS_LOADER_URL_REPLACEMENT_66___ + ");\n      filter: blur(8px);\n      transform: scale(1.1);\n\n      opacity: 0.2;\n      z-index: 1;\n    }\n\n.notification-card .image-wrapper {\n  filter: url(" + ___CSS_LOADER_URL_REPLACEMENT_66___ + ");\n}\n\n.notification-card .image-wrapper img {\n      position: relative;\n      z-index: 2;\n      width: auto;\n      height: 100%;\n      -o-object-fit: cover;\n         object-fit: cover;\n    }\n\n.notification-card .notification-content {\n    padding: 5px 0;\n  }\n\n.notification-card .s4 {\n    color: #D53737;\n    margin: 0;\n  }\n\n.notification-card {\n  filter: url(" + ___CSS_LOADER_URL_REPLACEMENT_66___ + ");\n}\n\n.notification-card .b3 {\n    color: #042C38;\n    margin: 0;\n    font-weight: 500;\n    transition: all 0.3s ease;\n  }\n\n.notification-card:hover .b3 {\n      color: #D53737;\n}\n\n.gallery {\n  padding: 60px 0;\n  border-top: 1px solid #042C38\n}\n\n.gallery:after {\n  content: \"\";\n  display: block;\n  width: 100%;\n  height: 1px;\n  clear: both;\n}\n\n.gallery br {\n\t\tdisplay: none;\n}\n\n.gallery .gallery-item {\n\t\tfloat: left;\n\t\tmargin-top: 0;\n\t\ttext-align: center;\n\t\twidth: 25%;\n\t\tmargin-bottom: 0;\n}\n\n.gallery .gallery-item dt {\n\t\t\tpadding: 15px;\n\t\t\t\n\t\t}\n\n@media screen and (max-width: 1024px) {\n\n  .gallery .gallery-item dt {\n    padding: 8px;\n  }\n}\n\n.gallery .gallery-item dt a {\n\t\t\t\tdisplay: block;\n}\n\n.gallery .gallery-item dt a img {\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\tmax-width: none;\n\t\t\t\t}\n\n.gallery .gallery-item dd {\n\t\t\tpadding:0 15px 15px;\n}\n\n.gallery img {\n\t\tpadding: 10px;\n\t\tbackground: transparent;\n    border-radius: 8px;\n    transition: background 0.3s ease;\n}\n\n.gallery img:hover {\n  background: #F5F5F5;\n}\n\n.gallery .gallery-caption {\n\t\tcolor: #888;\n\t\tfont-size: 12px;\n\t\tmargin: 0 0 12px;\n}\n\n.gallery dl {\n\t\tmargin: 0;\n}\n\n.gallery dt {\n\t\tmargin: 0;\n}\n\n.gallery br+br {\n\t\tdisplay: none;\n}\n\n.gallery-columns-1 .gallery-item {\n\t\twidth: 100%;\n\t}\n\n.gallery-columns-1 .attachment-medium {\n\t\tmax-width: 100%;\n\t\theight: auto;\n\t}\n\n.gallery-columns-2 .gallery-item {\n\t\twidth: 50%;\n\t}\n\n@media screen and (max-width: 640px) {\n\n  .gallery-columns-2 .gallery-item {\n    width: 50%;\n  }\n}\n\n@media screen and (max-width: 400px) {\n\n  .gallery-columns-2 .gallery-item {\n    width: 100%;\n  }\n\n  .gallery-columns-2 .gallery-item dt {\n\t\t\t\tpadding: 0px;\n  }\n\n  .gallery-columns-2 .gallery-item img  {\n\t\t\t\twidth: auto;\n\t\t\t\tdisplay: block;\n\t\t\t\tmargin: 0 auto;\n  }\n}\n\n.gallery-columns-2 .attachment-medium {\n\t\tmax-width: 100%;\n\t\theight: auto;\n}\n\n.gallery-columns-4 .gallery-item {\n\t\twidth: 25%;\n\t}\n\n@media screen and (max-width: 768px) {\n\n  .gallery-columns-4 .gallery-item {\n    width: 25%;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .gallery-columns-4 .gallery-item {\n    width: 33.3333%;\n  }\n\n  .gallery-columns-4 .gallery-item dt {\n\t\t\t\tpadding: 0px;\n  }\n}\n\n.gallery-columns-4 .attachment-thumbnail {\n\t\tmax-width: 100%;\n\t\theight: auto;\n}\n\n.gallery-columns-5 .gallery-item {\n\t\twidth: 20%;\n\t}\n\n@media screen and (max-width: 768px) {\n\n  .gallery-columns-5 .gallery-item {\n    width: 25%;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .gallery-columns-5 .gallery-item {\n    width: 33.3333%;\n  }\n\n  .gallery-columns-5 .gallery-item dt {\n\t\t\t\tpadding: 0px;\n  }\n}\n\n.gallery-columns-5 .attachment-thumbnail {\n\t\tmax-width: 100%;\n\t\theight: auto;\n}\n\n.gallery-columns-6 .gallery-item {\n\t\twidth: 16.6666%;\n\t}\n\n@media screen and (max-width: 1024px) {\n\n  .gallery-columns-6 .gallery-item {\n    width: 20%;\n  }\n}\n\n@media screen and (max-width: 768px) {\n\n  .gallery-columns-6 .gallery-item {\n    width: 25%;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .gallery-columns-6 .gallery-item {\n    width: 33.3333%;\n  }\n\n  .gallery-columns-6 .gallery-item dt {\n\t\t\t\tpadding: 0px;\n  }\n}\n\n.gallery-columns-6 .attachment-thumbnail {\n\t\tmax-width: 100%;\n\t\theight: auto;\n}\n\n.gallery-columns-7 .gallery-item {\n\t\twidth: 14.2857%;\n\t}\n\n.gallery-columns-7 .gallery-item dt {\n\t\t\tpadding: 5px;\n\t\t}\n\n@media screen and (max-width: 1024px) {\n\n  .gallery-columns-7 .gallery-item {\n    width: 20%;\n  }\n}\n\n@media screen and (max-width: 768px) {\n\n  .gallery-columns-7 .gallery-item {\n    width: 25%;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .gallery-columns-7 .gallery-item {\n    width: 33.3333%;\n  }\n\n  .gallery-columns-7 .gallery-item dt {\n\t\t\t\tpadding: 0px;\n  }\n}\n\n.gallery-columns-7 .attachment-thumbnail {\n\t\tmax-width: 100%;\n\t\theight: auto;\n}\n\n.gallery-columns-8 .gallery-item {\n\t\twidth: 12.5%;\n\t}\n\n.gallery-columns-8 .gallery-item dt {\n\t\t\tpadding: 5px;\n\t\t}\n\n@media screen and (max-width: 1024px) {\n\n  .gallery-columns-8 .gallery-item {\n    width: 20%;\n  }\n}\n\n@media screen and (max-width: 768px) {\n\n  .gallery-columns-8 .gallery-item {\n    width: 25%;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .gallery-columns-8 .gallery-item {\n    width: 33.3333%;\n  }\n\n  .gallery-columns-8 .gallery-item dt {\n\t\t\t\tpadding: 0px;\n  }\n}\n\n.gallery-columns-8 .attachment-thumbnail {\n\t\tmax-width: 100%;\n\t\theight: auto;\n}\n\n.gallery-columns-9 .gallery-item {\n\t\twidth: 11.1111%;\n\t}\n\n.gallery-columns-9 .gallery-item dt {\n\t\t\tpadding: 5px;\n\t\t}\n\n@media screen and (max-width: 1024px) {\n\n  .gallery-columns-9 .gallery-item {\n    width: 20%;\n  }\n}\n\n@media screen and (max-width: 768px) {\n\n  .gallery-columns-9 .gallery-item {\n    width: 25%;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .gallery-columns-9 .gallery-item {\n    width: 33.3333%;\n  }\n\n  .gallery-columns-9 .gallery-item dt {\n\t\t\t\tpadding: 0px;\n  }\n}\n\n.gallery-columns-9 .attachment-thumbnail {\n\t\tmax-width: 100%;\n\t\theight: auto;\n}\n\n.gallery-columns-10 .gallery-item {\n\t\twidth: 10%;\n\t}\n\n.gallery-columns-10 .gallery-item dt {\n\t\t\tpadding: 5px;\n\t\t}\n\n@media screen and (max-width: 1024px) {\n\n  .gallery-columns-10 .gallery-item {\n    width: 20%;\n  }\n}\n\n@media screen and (max-width: 768px) {\n\n  .gallery-columns-10 .gallery-item {\n    width: 25%;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .gallery-columns-10 .gallery-item {\n    width: 33.3333%;\n  }\n\n  .gallery-columns-10 .gallery-item dt {\n\t\t\t\tpadding: 0px;\n  }\n}\n\n.gallery-columns-10 .attachment-thumbnail {\n\t\tmax-width: 100%;\n\t\theight: auto;\n}\n\n.recent-news {\n  padding: 64px 0;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .recent-news {\n    margin-top: 45px;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .recent-news {\n    margin-top: 0;\n  }\n}\n\n.recent-news .title-wrapper {\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    margin-bottom: 50px;\n}\n\n@media screen and (max-width: 640px) {\n\n  .recent-news .title-wrapper {\n      justify-content: center;\n      flex-wrap: wrap;\n    margin-bottom: 64px;\n  }\n}\n\n.recent-news .title-wrapper h3 {\n      margin: 0;\n}\n\n@media screen and (max-width: 640px) {\n\n  .recent-news .title-wrapper h3 {\n    text-align: center;\n    width: 100%;\n    margin-bottom: 30px;\n  }\n}\n\n.recent-news .news-wrapper {\n    /*background: var(--white);*/\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    align-items: flex-start;\n    gap: 24px;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .recent-news .news-wrapper {\n      flex-wrap: wrap;\n  }\n}\n\n.recent-news .featured-news {\n    width: 50%;\n    height: auto;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .recent-news .featured-news {\n    width: calc(60% - 12px);\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .recent-news .featured-news {\n    width: 100%;\n  }\n}\n\n.recent-news .button-wrapper {\n    position: absolute;\n    bottom: 70px;\n    right: 0;\n}\n\n.recent-news .button-wrapper .bottom-link {\n      display: -webkit-box;\n      display: -ms-flexbox;\n      display: flex;\n    }\n\n@media screen and (max-width: 640px) {\n\n  .recent-news .button-wrapper {\n    padding: 0;\n    bottom: 0;\n  }\n}\n\n.recent-news .normal-news {\n    width: 25%;\n    height: auto;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .recent-news .normal-news {\n    width: calc(40% - 12px);\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .recent-news .normal-news {\n    width: 100%;\n  }\n}\n\n.recent-news .caption-news {\n    width: 25%;\n    height: auto;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .recent-news .caption-news {\n    width: 100%;\n  }\n}\n\n.recent-news .top-link {\n                }\n\n.recent-news .bottom-link {\n    display: none;\n}\n\n@media screen and (max-width: 640px) {\n\n  .recent-news .top-link {\n      display: none;\n  }\n\n  .recent-news .bottom-link {\n      display: inline-block;\n  }\n\n  .recent-news .button-wrapper {\n      text-align: center;\n      padding: 60px 0;\n  }\n\n  .recent-news .title-wrapper {\n      justify-content: flex-start;\n      margin-bottom: 32px;\n      margin-top: 60px;\n  }\n\n      .recent-news .title-wrapper h3 {\n        text-align: left;\n        margin: 0;\n      }\n}\n\n.news-card-large,\n  .news-card-normal,\n  .news-card-caption {\n    display: block;\n\n  }\n\n.news-card-large span.s4, .news-card-normal span.s4, .news-card-caption span.s4 {\n      color: #387E97;\n      margin: 0 0 10px;\n    }\n\n.news-card-large p, .news-card-normal p, .news-card-caption p {\n      margin: 0;\n    }\n\n.news-card-large .h4, .news-card-large .s1, .news-card-large .s2, .news-card-normal .h4, .news-card-normal .s1, .news-card-normal .s2, .news-card-caption .h4, .news-card-caption .s1, .news-card-caption .s2 {\n      transition: all 0.3s ease;\n    }\n\n.news-card-large:hover .h4, .news-card-large:hover .s1, .news-card-large:hover .s2, .news-card-normal:hover .h4, .news-card-normal:hover .s1, .news-card-normal:hover .s2, .news-card-caption:hover .h4, .news-card-caption:hover .s1, .news-card-caption:hover .s2 {\n        color: #D53737;\n}\n\n@media screen and (max-width: 640px) {\n\n  .news-card-large {\n    margin-bottom: 45px;\n  }\n}\n\n.news-card-large .image-wrapper {\n      margin-bottom: 35px;\n      padding-bottom: 67%;\n       padding-bottom: 79%;\n}\n\n@media screen and (max-width: 640px) {\n\n  .news-card-large .image-wrapper {\n    margin-bottom: 15px;\n    padding-bottom: 40%;\n  }\n}\n\n.news-card-large h4 {\n      margin: 0;\n      margin-bottom: 25px;\n}\n\n@media screen and (max-width: 640px) {\n\n  .news-card-normal {\n    margin-bottom: 45px;\n  }\n}\n\n.news-card-normal .image-wrapper {\n      margin-bottom: 20px;\n      padding-bottom: 92%;\n      padding-bottom: 79%;\n      padding-bottom: 71%;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .news-card-normal .image-wrapper {\n    margin-bottom: 35px;\n    padding-bottom: 67%;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .news-card-normal .image-wrapper {\n    margin-bottom: 15px;\n    padding-bottom: 40%;\n  }\n}\n\n.news-card-normal h4 {\n      margin: 0;\n      margin-bottom: 20px;\n}\n\n.news-card-caption {\n    padding: 24px 0;\n    border-top: 1px solid #F2F2F2;\n}\n\n@media screen and (max-width: 768px) {\n\n  .news-card-caption {\n    padding: 18px 0;\n  }\n}\n\n.news-card-caption h4 {\n      margin: 0 0 20px;\n}\n\n.upcoming-events {\n  background: #F5F5F5;\n  padding: 65px 135px;\n  margin: 80px 0;\n  border-radius: 8px;\n\n}\n\n@media screen and (max-width: 1280px) {\n\n  .upcoming-events {\n    margin: 0 0 64px;\n    padding: 45px 100px;\n  }\n}\n\n@media screen and (max-width: 1024px) {\n\n  .upcoming-events {\n    padding: 30px 45px 45px;\n  }\n}\n\n@media screen and (max-width: 768px) {\n\n  .upcoming-events {\n    padding: 30px 30px 45px;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .upcoming-events {\n    padding: 30px 15px 45px;\n  }\n}\n\n.upcoming-events .title-wrapper {\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    margin-bottom: 50px;\n}\n\n.upcoming-events .title-wrapper h3 {\n      margin: 0;\n    }\n\n@media screen and (max-width: 640px) {\n\n  .upcoming-events .title-wrapper h3 {\n    font-size: 28px;\n  }\n}\n\n.upcoming-events .controls {\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    padding-top: 30px;\n}\n\n@media screen and (max-width: 640px) {\n\n  .upcoming-events .controls {\n      justify-content: center;\n      flex-wrap: wrap;\n      flex-direction: column-reverse;\n  }\n}\n\n.upcoming-events .controls .glide__arrows {\n      display: -webkit-box;\n      display: -ms-flexbox;\n      display: flex;\n      justify-content: flex-start;\n      align-items: center;\n      gap: 15px;\n}\n\n@media screen and (max-width: 640px) {\n\n  .upcoming-events .controls .glide__arrows {\n    width: 100%;\n        justify-content: center;\n    margin-bottom: 35px;\n  }\n}\n\n.upcoming-events .controls .glide__arrows .glide__arrow {\n        position: relative;\n        padding: 0;\n        border: none;\n        box-shadow: none;\n        top: auto;\n        transform: translateY(0);\n        transition: all 0.2s ease;\n}\n\n.upcoming-events .controls .glide__arrows .glide__arrow rect{\n          transition: all 0.3s ease;\n        }\n\n.upcoming-events .controls .glide__arrows .glide__arrow path {\n          transition: all 0.3s ease;\n        }\n\n.upcoming-events .controls .glide__arrows .glide__arrow:hover rect {\n            fill: #042C38;\n}\n\n.upcoming-events .controls .glide__arrows .glide__arrow:hover path {\n            stroke: #FCFCFC;\n}\n\n.upcoming-events .controls .glide__arrows .glide__arrow--left,\n        .upcoming-events .controls .glide__arrows .glide__arrow--right {\n          left: auto;\n          right: auto;\n}\n\n@media screen and (max-width: 640px) {\n\n  .upcoming-events .glide__slides {\n      flex-direction: column;\n  }\n\n      .upcoming-events .glide__slides .glide__slide {\n        margin-bottom: 32px;\n        display: none\n      }\n\n      .upcoming-events .glide__slides .glide__slide:nth-child(1) {\n    display: block;\n  }\n\n      .upcoming-events .glide__slides .glide__slide:nth-child(2) {\n    display: block;\n  }\n\n      .upcoming-events .glide__slides .glide__slide:nth-child(3) {\n    display: block;\n  }\n\n  .upcoming-events .controls {\n      padding-top: 32px;\n  }\n      .upcoming-events .controls .glide__arrows {\n        display: none;\n      }\n}\n\n.events-slide {\n    display: block;\n\n  }\n\n.events-slide .image-wrapper {\n      padding-bottom: 79%;\n      margin-bottom: 35px;\n    }\n\n.events-slide .h5 {\n      transition: all 0.3s ease;\n    }\n\n.events-slide:hover .h5 {\n        color: #D53737;\n}\n\n.introduction {\n  background: #F5F5F5;\n  padding: 65px 135px;\n  margin: 80px 0 0;\n  margin-top: 0;\n  border-radius: 8px;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .introduction {\n    margin: 64px 0 0;\n    padding: 45px 100px;\n  }\n}\n\n@media screen and (max-width: 1024px) {\n\n  .introduction {\n    padding: 30px 45px 45px;\n  }\n}\n\n@media screen and (max-width: 768px) {\n\n  .introduction {\n    padding: 30px 30px 45px;\n  }\n}\n\n.introduction .intro-text {\n    padding: 0 0 50px;\n    max-width: 800px;\n}\n\n@media screen and (max-width: 768px) {\n\n  .introduction .intro-text {\n    padding: 0 0 10px;\n  }\n}\n\n.introduction .intro-text .c1 {\n      max-width: 565px;\n}\n\n.introduction .quick-links {\n    position: relative;\n}\n\n.introduction .quick-links ul,\n    .introduction .quick-links li {\n      margin: 0;\n      padding: 0;\n      list-style: none;\n      position: relative;\n    }\n\n.introduction .quick-links li .quick-links-image {\n        display: block;\n        border-radius: 8px;\n        position: absolute;\n        top: -20px;\n        right: 15%;\n        opacity: 0;\n        visibility: hidden;\n        transition: all 0.5s ease;\n        max-width: 300px;\n        width: 100%;\n        height: auto;\n        z-index: 100;\n      }\n\n@media screen and (max-width: 1280px) {\n\n  .introduction .quick-links li .quick-links-image {\n    display: none;\n  }\n}\n\n.introduction .quick-links li:hover .quick-links-image {\n          opacity: 1;\n          visibility: visible;\n}\n\n.introduction .quick-links a {\n      display: block;\n      padding: 25px 0;\n      display: -webkit-box;\n      display: -ms-flexbox;\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      border-bottom: 1px solid #CFCFCF;\n      margin: 0;\n      transition: border 0.2s ease-in, color 0.2s ease-in;\n      font-size: 24px;\n}\n\n@media screen and (max-width: 768px) {\n\n  .introduction .quick-links a {\n    padding: 15px 0;\n    font-size: 22px;\n  }\n}\n\n.introduction .quick-links a svg {\n        width: 14px;\n        height: auto;\n        transform: rotate(0deg);\n        transition: transform 0.2s ease-in;\n}\n\n.introduction .quick-links a svg path {\n          transition: fill 0.2s ease-in;\n        }\n\n.introduction .quick-links a:hover {\n  border-bottom: 2px solid #D53737;\n  color: #D53737;\n}\n\n.introduction .quick-links a:hover svg {\n          width: 14px;\n          height: auto;\n          transform: rotate(-45deg);\n}\n\n.introduction .quick-links a:hover svg path {\n            fill: #D53737\n          }\n\n.introduction .quick-links .images {\n      position: absolute;\n      width: auto;\n      right: calc(300px + 10%);\n      bottom: 50px;\n      height: 244px;\n}\n\n.introduction .quick-links .images .image {\n        position: absolute;\n        opacity: 0;\n        transition: .4s ease opacity\n\n      }\n\n.introduction .quick-links .images .image.hover {\n  opacity: 1;\n}\n\n.introduction .quick-links .images .image-wrapper {\n        width: 350px;\n        height: 244px;\n        border-radius: 8px;\n\n      }\n\n.introduction .quick-links .images .image-wrapper img {\n          border-radius: 8px;\n        }\n\n@media screen and (max-width: 1024px) {\n\n  .introduction .quick-links .images {\n    display: none;\n  }\n}\n\n.search-navigation.fixed {\n  opacity: 0;\n  visibility: hidden;\n  position: fixed;\n  top: 0px;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  transition: all 0.3s ease;\n  z-index:9999;\n  padding: 50px;\n}\n\n.search-navigation.fixed.visible {\n  opacity: 1;\n  visibility: visible;\n  top: 40px;\n}\n\n.search-navigation.fixed .bg {\n            position: fixed;\n            top: 0;\n            bottom: 0;\n            left: 0;\n            right: 0;\n            background: rgba(0, 0, 0, .5);\n            z-index: 4;\n}\n\n.search-navigation.inline {\n  position: relative;\n}\n\n.search-navigation.inline .search-bar {\n            padding: 0px 15px 0px;\n}\n\n.search-navigation.inline .search-bar-wrapper .controls {\n                top: 7px;\n                gap: 12px;\n            }\n\n.search-navigation.inline .search-bar-wrapper .controls .btnTransparent span {\n                        display: none;\n                    }\n\n.search-navigation.inline .search-bar-wrapper input {\n                font-style: normal;\n                font-weight: 500;\n                font-size: 18px;\n                line-height: 120%;\n                padding: 15px 0;\n                padding-right: 0px;\n                background: transparent;\n                color: #E3EAEC;\n                border: none;\n                width: 100%;\n                padding-right: 80px;\n              }\n\n@media screen and (max-width: 768px) {\n\n  .search-navigation {\n    padding: 30px 15px;\n  }\n}\n\n.search-navigation .search-bar {\n        padding: 0px 50px 0px;\n        background: #042C38;\n        border-radius: 8px;\n        position: relative;\n        z-index: 5;\n        max-height: 100%;\n        overflow: auto;\n}\n\n.search-navigation .search-bar-wrapper {\n        position: relative;\n}\n\n.search-navigation .search-bar-wrapper .controls {\n            position: absolute;\n            right: 0;\n            top: 16px;\n            list-style: none;\n            display: -webkit-box;\n            display: -ms-flexbox;\n            display: flex;\n            gap: 24px;\n            align-items: center;\n        }\n\n.search-navigation .search-bar-wrapper .controls .btnTransparent {\n                background: #FFF;\n            }\n\n.search-navigation .search-bar-wrapper .controls .search-toggle {\n                display: -webkit-box;\n                display: -ms-flexbox;\n                display: flex;\n                cursor: pointer;\n                align-items: center;\n            }\n\n.search-navigation .search-bar-wrapper input {\n            font-style: normal;\n            font-weight: 500;\n            font-size: 28px;\n            line-height: 120%;\n            padding: 34px 0;\n            background: transparent;\n            color: #E3EAEC;\n            border: none;\n            width: 100%;\n            padding-right: 195px\n        }\n\n.search-navigation .search-bar-wrapper input:focus,.search-navigation .search-bar-wrapper input.focus-visible {\n  border: none;\n  outline: none;\n      box-shadow: none;\n}\n\n.search-navigation .search-bar-wrapper input:focus,.search-navigation .search-bar-wrapper input:focus-visible {\n  border: none;\n  outline: none;\n      box-shadow: none;\n}\n\n.search-navigation .search-suggestion-wrapper {\n        padding-bottom: 50px;\n        display: none;\n        border-top: 1px solid #E3EAEC;\n        gap: 16px;\n        grid-auto-rows: 1fr;\n        grid-template-columns: 1fr 1fr 2.5fr;\n}\n\n.search-navigation .search-suggestion-wrapper.visible {\n  display: grid;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .search-navigation .search-suggestion-wrapper.visible {\n    grid-template-columns: 1fr 1fr 1fr;\n  }\n}\n\n@media screen and (max-width: 768px) {\n\n  .search-navigation .search-suggestion-wrapper.visible {\n    display: block;\n  }\n\n  .search-navigation .search-suggestion-wrapper.visible > div {\n                    margin-bottom: 40px;\n  }\n}\n\n.search-navigation .search-suggestion-wrapper h5 {\n            color: #FFF;\n            font-style: normal;\n            font-weight: 700;\n            font-size: 16px;\n            line-height: 140%;\n            margin-bottom: 25px;\n}\n\n@media screen and (max-width: 768px) {\n\n  .search-navigation .search-suggestion-wrapper h5 {\n    font-size: 22px;\n  }\n}\n\n.search-navigation .search-suggestion-wrapper h6 {\n            color: #FFF;\n            font-style: normal;\n            font-weight: 700;\n            font-size: 14px;\n            line-height: 140%;\n            margin: 0;\n}\n\n.search-navigation .search-suggestion-wrapper .search-v1 {\n            margin-bottom: 15px;\n            padding-right: 30px;\n}\n\n.search-navigation .search-suggestion-wrapper .search-v1 a {\n                font-style: normal;\n                font-weight: 500;\n                font-size: 14px;\n                line-height: 140%;\n                color: #FFF\n            }\n\n.search-navigation .search-suggestion-wrapper .search-v1 a:hover {\n  text-decoration: underline;\n}\n\n.search-navigation .search-loading {\n        display: none;\n        text-align: center;\n        border-top: 1px solid #E3EAEC;\n}\n\n.search-navigation .search-loading.visible {\n  display: block;\n}\n\n.search-navigation .search-loading {/*generated by https://loading.io/ */\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div {\n            left: 94px;\n            top: 48px;\n            position: absolute;\n            animation: ldio-oruce3mgeyp linear 1s infinite;\n            background: #ffffff;\n            width: 12px;\n            height: 24px;\n            border-radius: 6px / 12px;\n            transform-origin: 6px 52px;\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div:nth-child(1) {\n        transform: rotate(0deg);\n        animation-delay: -0.9166666666666666s;\n        background: #ffffff;\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div:nth-child(2) {\n        transform: rotate(30deg);\n        animation-delay: -0.8333333333333334s;\n        background: #ffffff;\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div:nth-child(3) {\n        transform: rotate(60deg);\n        animation-delay: -0.75s;\n        background: #ffffff;\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div:nth-child(4) {\n        transform: rotate(90deg);\n        animation-delay: -0.6666666666666666s;\n        background: #ffffff;\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div:nth-child(5) {\n        transform: rotate(120deg);\n        animation-delay: -0.5833333333333334s;\n        background: #ffffff;\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div:nth-child(6) {\n        transform: rotate(150deg);\n        animation-delay: -0.5s;\n        background: #ffffff;\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div:nth-child(7) {\n        transform: rotate(180deg);\n        animation-delay: -0.4166666666666667s;\n        background: #ffffff;\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div:nth-child(8) {\n        transform: rotate(210deg);\n        animation-delay: -0.3333333333333333s;\n        background: #ffffff;\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div:nth-child(9) {\n        transform: rotate(240deg);\n        animation-delay: -0.25s;\n        background: #ffffff;\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div:nth-child(10) {\n        transform: rotate(270deg);\n        animation-delay: -0.16666666666666666s;\n        background: #ffffff;\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div:nth-child(11) {\n        transform: rotate(300deg);\n        animation-delay: -0.08333333333333333s;\n        background: #ffffff;\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div:nth-child(12) {\n        transform: rotate(330deg);\n        animation-delay: 0s;\n        background: #ffffff;\n}\n\n.search-navigation .search-loading .loadingio-spinner-spinner-v7b2k0aigi {\n        width: 200px;\n        height: 200px;\n        display: inline-block;\n        overflow: hidden;\n        background: none;\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp {\n        width: 100%;\n        height: 100%;\n        position: relative;\n        transform: translateZ(0) scale(1);\n        backface-visibility: hidden;\n        transform-origin: 0 0; /* see note above */\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div { box-sizing: content-box;\n}\n\n@keyframes ldio-oruce3mgeyp {\n0% { opacity: 1 }\n100% { opacity: 0 }\n}\n\n.sitemap > li > a, .sitemap > li span {\n            font-size: 22px;\n            font-weight: 500;\n        }\n\n.sitemap ul {\n        padding-left: 15px;\n        margin-bottom: 15px;\n        margin-top: 15px;\n    }\n\n.sitemap li {\n        margin-bottom: 5px;\n    }\n\n.sitemap a {\n        text-decoration: none;\n    }\n\n.funding-v1 {\n    border-radius: 16px;\n    background: #F5F5F5;\n    padding: 48px;\n    display: block;\n  }\n\n@media screen and (max-width: 640px) {\n\n  .funding-v1 {\n    padding: 30px 15px;\n  }\n}\n\n.funding-v1 .dot {\n        width: 6px;\n        height: 6px;\n        border-radius: 100px;\n        background: #D53737;\n        margin: 20px 0;\n}\n\n.funding-v1 span {\n      color: #042C38;\n}\n\n.funding-v1 .metadata {\n      color: #387E97;\n      display: block;\n      margin: 0 0 15px;\n      font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n      display: -webkit-box;\n      display: -ms-flexbox;\n      display: flex;\n      align-items: center;\n}\n\n.funding-v1 .metadata .ellipse {\n        width: 6px;\n        height: 6px;\n        display: inline-block;\n        background: #387E97;\n        margin: 0 8px;\n        border-radius: 90px;\n      }\n\n.funding-v1 .h5 {\n      margin: 0 0 24px;\n      transition: all 0.3s ease;\n}\n\n.funding-v1 .sep {\n      height: 1px;\n      width: 100%;\n      background: #CFCFCF;\n      display: block;\n      margin: 0 0 24px;\n}\n\n.funding-v1 .label {\n      display: block;\n      margin: 0 0 12px;\n      font-weight: 500;\n}\n\n.funding-v1 .value {\n      display: block;\n      margin: 0 0 20px;\n      font-weight: 500;\n}\n\n.funding-v1 .button_wrapper {\n      padding-top: 25px;\n}\n\n.funding-v1 .button_wrapper .btn {\n        display: inline-block;\n      }\n\n.funding-v1:hover .h5 {\n      color: #D53737;\n}\n\n.funding-v1:hover .button_wrapper {\n      padding-top: 25px;\n}\n\n.funding-v1:hover .button_wrapper .btn {\n        padding-right: 25px;\n      }\n\n.funding-v2 {\n  border-radius: 16px;\n  background: #F5F5F5;\n  padding: 48px;\n  display: block;\n}\n\n@media screen and (max-width: 640px) {\n\n  .funding-v2 {\n    padding: 30px;\n  }\n}\n\n.funding-v2 .s1 {\n    transition: all 0.3s ease;\n}\n\n.funding-v2 .top_level {\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    gap: 24px;\n    align-items: flex-start;\n}\n\n@media screen and (max-width: 640px) {\n\n  .funding-v2 .top_level {\n    gap: 12px;\n      align-items: flex-start;\n    margin-bottom: 25px;\n  }\n\n  .funding-v2 .top_level .s1 {\n        margin-bottom: 0;\n  }\n\n  .funding-v2 .top_level .missing-image.medium {\n        font-size: 40px;\n  }\n}\n\n.funding-v2 .image-wrapper {\n    width: 198px;\n    height: 277px;\n    flex-shrink: 0;\n    margin-bottom: 24px;\n    overflow: visible;\n    overflow: initial;\n}\n\n@media screen and (max-width: 640px) {\n\n  .funding-v2 .image-wrapper {\n    width: 75px;\n    height: 100px;\n    border-radius: 3px;\n    margin: 0;\n  }\n}\n\n.funding-v2 .title-wrapper {\n                }\n\n.funding-v2 .metadata {\n    color: #387E97;\n    display: block;\n    margin: 0 0 15px;\n    font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    align-items: center;\n}\n\n.funding-v2 .metadata .ellipse {\n      width: 6px;\n      height: 6px;\n      display: inline-block;\n      background: #387E97;\n      margin: 0 8px;\n      border-radius: 90px;\n    }\n\n.funding-v2 .h5 {\n    margin: 0 0 24px;\n    font-size: 24px;\n    transition: all 0.3s ease;\n}\n\n.funding-v2 .dot {\n    width: 6px;\n    height: 6px;\n    border-radius: 100px;\n    background: #D53737;\n    margin: 20px 0;\n}\n\n.funding-v2 .sep {\n    height: 1px;\n    width: 100%;\n    background: #CFCFCF;\n    display: block;\n    margin: 0 0 24px;\n}\n\n.funding-v2 .label,\n  .funding-v2 .value {\n    display: block;\n    margin: 0 0 18px;\n    font-weight: 500;\n}\n\n.funding-v2 span {\n    color: #042C38;\n}\n\n.funding-v2 .button_wrapper {\n    padding-top: 25px;\n}\n\n.funding-v2 .button_wrapper .btn {\n      display: inline-block;\n    }\n\n.funding-v2:hover .h5 {\n      color: #D53737;\n}\n\n.funding-v2:hover .button_wrapper {\n      padding-top: 25px;\n}\n\n.funding-v2:hover .button_wrapper .btn {\n        padding-right: 25px;\n      }\n\n.projects-v1 {\n  border-radius: 16px;\n  background: #F5F5F5;\n  padding: 48px;\n  display: block;\n}\n\n@media screen and (max-width: 640px) {\n\n  .projects-v1 {\n    padding: 30px;\n  }\n}\n\n.projects-v1 .s1 {\n    transition: all 0.3s ease;\n}\n\n.projects-v1 .top_level {\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    gap: 24px;\n    align-items: flex-start;\n}\n\n@media screen and (max-width: 640px) {\n\n  .projects-v1 .top_level {\n    gap: 12px;\n      align-items: flex-start;\n    margin-bottom: 25px;\n  }\n\n  .projects-v1 .top_level .s1 {\n        margin-bottom: 0;\n  }\n\n  .projects-v1 .top_level .missing-image.medium {\n        font-size: 40px;\n  }\n}\n\n.projects-v1 .image-wrapper {\n    width: 198px;\n    height: 277px;\n    flex-shrink: 0;\n    margin-bottom: 24px;\n    overflow: visible;\n    overflow: initial;\n}\n\n@media screen and (max-width: 640px) {\n\n  .projects-v1 .image-wrapper {\n    width: 75px;\n    height: 100px;\n    border-radius: 3px;\n    margin: 0;\n  }\n}\n\n.projects-v1 .title-wrapper {\n                }\n\n.projects-v1 .metadata {\n    color: #387E97;\n    display: block;\n    margin: 0 0 15px;\n    font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    align-items: center;\n}\n\n.projects-v1 .metadata .ellipse {\n      width: 6px;\n      height: 6px;\n      display: inline-block;\n      background: #387E97;\n      margin: 0 8px;\n      border-radius: 90px;\n    }\n\n.projects-v1 .h5 {\n    margin: 0 0 24px;\n}\n\n.projects-v1 .sep {\n    height: 1px;\n    width: 100%;\n    background: #CFCFCF;\n    display: block;\n    margin: 0 0 24px;\n}\n\n.projects-v1 .label,\n  .projects-v1 .value {\n    display: block;\n    margin: 0 0 18px;\n    font-weight: 500;\n}\n\n.projects-v1 .button_wrapper {\n    padding-top: 25px;\n}\n\n.projects-v1 .button_wrapper .btn {\n      display: inline-block;\n    }\n\n.projects-v1:hover .s1 {\n      color: #D53737;\n}\n\n.projects-v1:hover .btn {\n      background: #D53737;\n      color: #FFF;\n}\n\n.projects-v2 {\n  border-radius: 8px;\n  background: #F5F5F5;\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n  align-items: flex-start;\n  padding: 40px 24px;\n  gap: 65px;\n  color: #042C38;\n  transition: all 0.2s ease-in;\n\n}\n\n@media screen and (max-width: 1024px) {\n\n  .projects-v2 {\n    display: block;\n  }\n}\n\n.projects-v2 .list {\n    flex-basis: 40%;\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    flex-direction: row;\n    align-items: flex-start;\n    padding: 0px;\n    gap: 82px;\n    margin-bottom: 24px;\n}\n\n@media screen and (max-width: 640px) {\n\n  .projects-v2 .list {\n    gap: 0px;\n  }\n}\n\n.projects-v2 .list > div {\n      flex-basis: 50%;\n}\n\n.projects-v2 .list p {\n      margin: 0 0 15px;\n      line-height: 1;\n}\n\n.projects-v2 .list .bold {\n      font-weight: bold;\n}\n\n.projects-v2 .content {\n    flex-basis: 60%;\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    flex-direction: row;\n    align-items: flex-start;\n    padding: 0px;\n    gap: 24px 60px;\n}\n\n.projects-v2 .content .h5 {\n        margin: 0 0 20px;\n        transition: all 0.3s ease;\n    }\n\n.projects-v2 .content p {\n      margin: 0 0 15px;\n    }\n\n.projects-v2 .content .image-wrapper {\n      width: 164px;\n      height: 248px;\n      flex-grow: 0;\n      flex-shrink: 0;\n    }\n\n@media screen and (max-width: 640px) {\n\n  .projects-v2 .content {\n    display: block;\n  }\n\n  .projects-v2 .content .image-wrapper {\n        margin-bottom: 20px;\n  }\n}\n\n.projects-v2:hover .content .h5 {\n        color: #D53737;\n      }\n\n.our-scientists-v1 a {\n    display: block;\n    background: #F5F5F5;\n    padding: 24px;\n    border-radius: 16px;\n    transition: all 0.3s ease;\n    height: 100%;\n\n  }\n\n.our-scientists-v1 .image-wrapper {\n    padding-bottom: 110%;\n    margin-bottom: 30px;\n  }\n\n.our-scientists-v1 .b2 {\n    font-weight: 500;\n  }\n\n.our-scientists-v1 .dot {\n    width: 6px;\n    height: 6px;\n    border-radius: 100px;\n    background: #D53737;\n    margin: 20px 0;\n  }\n\n.our-scientists-v1 h6 {\n    margin-bottom: 15px;\n    transition: all 0.3s ease;\n  }\n\n.our-scientists-v1 p {\n    margin: 8px 0;\n    color: #042C38\n  }\n\n.our-scientists-v1 p:last-child {\n  margin: 8px 0 0;\n}\n\n.our-scientists-v1:hover h6 {\n      color: #D53737;\n}\n\n.news-v1 .image-wrapper {\n    margin-bottom: 20px;\n    padding-bottom: 92%;\n    padding-bottom: 79%;\n  }\n\n.news-v1 h4 {\n    margin: 0;\n    margin-bottom: 20px;\n  }\n\n.news-v1 .s4 {\n    color: #387E97;\n    margin-bottom: 10px;\n  }\n\n.news-v1 .s1 {\n    transition: all 0.3s ease\n  }\n\n.news-v1:hover .s1 {\n      color: #D53737;\n}\n\n.publications-v1 {\n  border-radius: 16px;\n  background: #F5F5F5;\n  padding: 48px;\n  display: block;\n}\n\n@media screen and (max-width: 640px) {\n\n  .publications-v1 {\n    padding: 30px 15px;\n  }\n}\n\n.publications-v1 span {\n    color: #042C38;\n}\n\n.publications-v1 .metadata {\n    color: #387E97;\n    display: block;\n    margin: 0 0 15px;\n    font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    align-items: center;\n}\n\n.publications-v1 .metadata .ellipse {\n      width: 6px;\n      height: 6px;\n      display: inline-block;\n      background: #387E97;\n      margin: 0 8px;\n      border-radius: 90px;\n    }\n\n.publications-v1 .h5 {\n    margin: 0 0 24px;\n    transition: all 0.3s ease;\n}\n\n.publications-v1 .sep {\n    height: 1px;\n    width: 100%;\n    background: #CFCFCF;\n    display: block;\n    margin: 0 0 24px;\n}\n\n.publications-v1 .label {\n    display: block;\n    margin: 0 0 12px;\n    font-weight: 500;\n}\n\n.publications-v1 .value {\n    display: block;\n    margin: 0 0 20px;\n    font-weight: 500;\n}\n\n.publications-v1 .button_wrapper {\n    padding-top: 25px;\n}\n\n.publications-v1 .button_wrapper .btn {\n      display: inline-block;\n    }\n\n.publications-v1:hover .h5 {\n    color: #D53737;\n}\n\n.publications-v1:hover .button_wrapper {\n    padding-top: 25px;\n}\n\n.publications-v1:hover .button_wrapper .btn {\n      padding-right: 25px;\n    }\n\n.publications-v2 {\n  border-radius: 16px;\n  background: #F5F5F5;\n  padding: 48px;\n  display: block;\n}\n\n@media screen and (max-width: 640px) {\n\n  .publications-v2 {\n    padding: 30px;\n  }\n}\n\n.publications-v2 .s1 {\n    transition: all 0.3s ease;\n}\n\n.publications-v2 .top_level {\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    gap: 24px;\n    align-items: flex-start;\n}\n\n@media screen and (max-width: 640px) {\n\n  .publications-v2 .top_level {\n    gap: 12px;\n      align-items: flex-start;\n    margin-bottom: 25px;\n  }\n\n  .publications-v2 .top_level .s1 {\n        margin-bottom: 0;\n  }\n\n  .publications-v2 .top_level .missing-image.medium {\n        font-size: 40px;\n  }\n}\n\n.publications-v2 .image-wrapper {\n    width: 198px;\n    height: 277px;\n    flex-shrink: 0;\n    margin-bottom: 24px;\n    overflow: visible;\n    overflow: initial;\n}\n\n@media screen and (max-width: 640px) {\n\n  .publications-v2 .image-wrapper {\n    width: 75px;\n    height: 100px;\n    border-radius: 3px;\n    margin: 0;\n  }\n}\n\n.publications-v2 .title-wrapper {\n                }\n\n.publications-v2 .metadata {\n    color: #387E97;\n    display: block;\n    margin: 0 0 15px;\n    font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    align-items: center;\n}\n\n.publications-v2 .metadata .ellipse {\n      width: 6px;\n      height: 6px;\n      display: inline-block;\n      background: #387E97;\n      margin: 0 8px;\n      border-radius: 90px;\n    }\n\n.publications-v2 .h5 {\n    margin: 0 0 24px;\n    font-size: 24px;\n    transition: all 0.3s ease;\n}\n\n.publications-v2 .sep {\n    height: 1px;\n    width: 100%;\n    background: #CFCFCF;\n    display: block;\n    margin: 0 0 24px;\n}\n\n.publications-v2 .label,\n  .publications-v2 .value {\n    display: block;\n    margin: 0 0 18px;\n    font-weight: 500;\n}\n\n.publications-v2 span {\n    color: #042C38;\n}\n\n.publications-v2 .button_wrapper {\n    padding-top: 25px;\n}\n\n.publications-v2 .button_wrapper .btn {\n      display: inline-block;\n    }\n\n.publications-v2:hover .h5 {\n      color: #D53737;\n}\n\n.publications-v2:hover .button_wrapper {\n      padding-top: 25px;\n}\n\n.publications-v2:hover .button_wrapper .btn {\n        padding-right: 25px;\n      }\n\n.forms-v1 {\n  border-radius: 16px;\n  background: #F5F5F5;\n  padding: 48px;\n}\n\n.forms-v1 span {\n    color: #042C38;\n  }\n\n.forms-v1 .metadata {\n    color: #387E97;\n    display: block;\n    margin: 0 0 15px;\n    font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    align-items: center;\n  }\n\n.forms-v1 .metadata .ellipse {\n      width: 6px;\n      height: 6px;\n      display: inline-block;\n      background: #387E97;\n      margin: 0 8px;\n      border-radius: 90px;\n    }\n\n.forms-v1 .h5 {\n    margin: 0 0 24px;\n  }\n\n.forms-v1 .sep {\n    height: 2px;\n    width: 100%;\n    background: #042C38;\n    display: block;\n    margin: 0 0 24px;\n  }\n\n.forms-v1 .label,\n  .forms-v1 .value {\n    display: block;\n    margin: 0 0 18px;\n    font-weight: 500;\n  }\n\n.forms-v1 .button_wrapper {\n    padding-top: 25px;\n  }\n\n.forms-v1 .button_wrapper .btn {\n      display: inline-block;\n    }\n\n.forms-v1 .h5 {\n    transition: all 0.3s ease;\n  }\n\n.forms-v1:hover .h5 {\n      color: #D53737;\n}\n\n.forms-v1:hover .btn.arrow,.forms-v1:hover .btn.arrow {\n      padding-right: 25px;\n}\n\n.news-card-small {\n  background: #F5F5F5;\n  padding: 16px;\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  gap: 24px;\n  width: 100%;\n  margin-bottom: 4px;\n  transition: all 0.3s ease;\n\n}\n\n.news-card-small .image-wrapper {\n    border-radius: 4px;\n    width: 85px;\n    height: 92px;\n    height: 55px;\n    flex-shrink: 0;\n  }\n\n.news-card-small .content-wrapper {\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    align-items: center;\n  }\n\n.news-card-small .content-wrapper .s4 {\n      color: #D53737;\n      margin: 0 0 2px;\n    }\n\n.news-card-small .content-wrapper h6 {\n      font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n      font-size: 14px;\n      font-weight: 500;\n      margin: 0;\n      transition: all 0.3s ease;\n    }\n\n.news-card-small:hover .content-wrapper h6 {\n        color: #D53737;\n      }\n\n.team-v1 {\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    flex-direction: column;\n    align-items: flex-start;\n    padding: 24px;\n    gap: 40px;\n    background: #F5F5F5;\n    padding: 20px;\n    border-radius: 16px;\n    color: #042C38;\n}\n\n.team-v1 .content-wrapper .h5 {\n            margin: 0;\n            transition: all 0.3s ease;\n        }\n\n.team-v1 .content-wrapper .dot {\n            background: #D53737;\n            width: 6px;\n            height: 6px;\n            border-radius: 90px;\n            margin: 15px 0;\n        }\n\n.team-v1 .content-wrapper p {\n            margin: 0;\n        }\n\n.team-v1 .content-wrapper .excerpt-wrapper {\n            min-height: 135px;\n        }\n\n.team-v1 .image-wrapper {\n        padding-bottom: 110%;\n    }\n\n.team-v1:hover .content-wrapper .h5 {\n                color: #D53737;\n            }\n\n.events-v1 {\n  border-radius: 16px;\n  background: #F5F5F5;\n  padding: 48px;\n  transition: all 0.3s ease-in-out;\n\n}\n\n@media screen and (max-width: 1024px) {\n\n  .events-v1 {\n    padding: 30px;\n  }\n}\n\n.events-v1 .h3,\n  .events-v1 p,\n  .events-v1 span,\n  .events-v1 .content .value,\n  .events-v1 .metadata .ellipse,\n  .events-v1 .sep {\n    transition: all 0.3s ease-in-out;\n}\n\n.events-v1:hover {\n  background: #D53737;\n}\n\n.events-v1:hover .h3,\n    .events-v1:hover p,\n    .events-v1:hover span,\n    .events-v1:hover .content .value {\n      color: #FFF;\n}\n\n.events-v1:hover .metadata .ellipse,\n    .events-v1:hover .sep {\n      background: #FFF;\n}\n\n.events-v1.fade {\n  opacity: 0.35;\n}\n\n.events-v1 .image-wrapper {\n    margin-bottom: 20px;\n    padding-bottom: 79%;\n}\n\n@media screen and (max-width: 640px) {\n\n  .events-v1 .image-wrapper {\n    margin-bottom: 15px;\n    padding-bottom: 40%;\n  }\n}\n\n.events-v1 .metadata {\n    color: #387E97;\n    display: block;\n    margin: 0 0 15px;\n    font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    align-items: center;\n}\n\n.events-v1 .metadata .ellipse {\n      width: 6px;\n      height: 6px;\n      display: inline-block;\n      background: #387E97;\n      margin: 0 8px;\n      border-radius: 90px;\n    }\n\n.events-v1 .h5 {\n    margin: 0 0 24px;\n}\n\n.events-v1 .sep {\n    height: 2px;\n    width: 100%;\n    background: #D53737;\n    display: block;\n    margin: 25px 0 30px;\n}\n\n.events-v1 .content .label {\n      display: block;\n      margin: 0 0 8px;\n      font-weight: bold;\n      font-size: 16px;\n      line-height: 1.2;\n    }\n\n.events-v1 .content .value {\n      display: block;\n      margin: 0 0 30px;\n      font-size: 16px;\n      line-height: 1.2;\n      color: #042C38\n    }\n\n.events-v1 .content .value:last-child {\n  margin-bottom: 0;\n}\n\n.media-card {\n    display: block;\n    color: #042C38;\n    overflow: hidden;\n    text-overflow: ellipsis;\n}\n\n.media-card .image-wrapper {\n        padding-bottom: 67%;\n        margin-bottom: 25px;\n    }\n\n.media-card .h5 {\n        transition: all 0.3s ease;\n    }\n\n.media-card:hover .h5 {\n            color: #D53737;\n}\n\n.gallery-card {\n    display: block;\n    color: #042C38;\n}\n\n.gallery-card .image-wrapper {\n        padding-bottom: 67%;\n        margin-bottom: 25px;\n    }\n\n.employment-v1 {\n  border-radius: 8px;\n  background: #F5F5F5;\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n  align-items: flex-start;\n  padding: 40px 24px;\n  gap: 65px;\n  color: #042C38;\n  transition: all 0.2s ease-in;\n}\n\n.employment-v1 .btn {\n    display: inline-block;\n  }\n\n@media screen and (max-width: 1024px) {\n\n  .employment-v1 {\n    display: block;\n  }\n}\n\n.employment-v1:hover .btn.btnTransparentRed {\n  background: #D53737;\n  color: #FFF;\n}\n\n.employment-v1 .list {\n    flex-basis: 40%;\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    flex-direction: row;\n    align-items: flex-start;\n    padding: 0px;\n    gap: 82px;\n    margin-bottom: 24px;\n}\n\n@media screen and (max-width: 640px) {\n\n  .employment-v1 .list {\n    gap: 0px;\n      flex-wrap: wrap;\n  }\n}\n\n.employment-v1 .list > div {\n      flex-basis: 50%;\n}\n\n.employment-v1 .list p {\n      margin: 0 0 15px;\n      line-height: 1;\n}\n\n.employment-v1 .list .bold {\n      font-weight: bold;\n}\n\n.employment-v1 .content {\n    flex-basis: 60%;\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    flex-direction: row;\n    align-items: flex-start;\n    padding: 0px;\n    gap: 24px;\n}\n\n.employment-v1 .content .h6  {\n        margin: 0 0 25px;\n    }\n\n.employment-v1 .content p {\n      margin: 0 0 25px;\n    }\n\n.employment-v1 .content .image-wrapper {\n      width: 186px;\n      height: 241px;\n      flex-grow: 0;\n      flex-shrink: 0;\n    }\n\n@media screen and (max-width: 640px) {\n\n  .employment-v1 .content {\n    display: block;\n  }\n\n  .employment-v1 .content .image-wrapper {\n        margin-bottom: 20px;\n  }\n}\n\n.page-title {\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  justify-content: space-between;\n  align-items:flex-start;\n  padding: 0 0 80px;\n\n}\n\n@media screen and (max-width: 640px) {\n\n  .page-title {\n    padding: 0 0 32px;\n  }\n}\n\n.page-title h1 {\n    flex-shrink: 0;\n    width: 50%;\n}\n\n.page-title .c1 {\n    flex-shrink: 0;\n    width: 40%;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .page-title {\n    display: block;\n  }\n\n  .page-title h1 {\n      width: 100%;\n      margin-bottom: 40px;\n      text-align: left;\n  }\n\n  .page-title .c1 {\n      width: 100%;\n      text-align: left;\n  }\n}\n\n.page-sub-title {\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  padding: 0 0 20px;\n  margin-bottom: 64px;\n  border-bottom: 1px solid #E3EAEC;\n  width: 100%;\n}\n\n.page-sub-title .h4 {\n    margin: 0;\n  }\n\n@media screen and (max-width: 640px) {\n\n  .page-sub-title .h4 {\n    text-align: left;\n  }\n}\n\n@media screen and (max-width: 768px) {\n\n  .page-sub-title {\n    margin-bottom: 32px;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .page-sub-title {\n    display: block;\n  }\n\n  .page-sub-title .html {\n      display: -webkit-box;\n      display: -ms-flexbox;\n      display: flex;\n      align-items: center;\n      justify-content: flex-end;\n      padding-top: 40px;\n  }\n}\n\n.menu-style-1 {\n  margin-bottom: 80px;\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  border-bottom: 1px solid #CFCFCF;\n}\n\n.menu-style-1-title {\n    display: none;\n    cursor: pointer;\n    background: #D53737;\n    color: #FFF;\n    border-radius: 8px;\n    padding: 15px;\n    align-items: center;\n    justify-content: space-between;\n  }\n\n.menu-style-1-title .selection {\n      display: -webkit-box;\n      display: -ms-flexbox;\n      display: flex;\n      align-items: center;\n    }\n\n.menu-style-1-title .selection .instructions {\n        padding-left: 15px;\n        color: #FFF;\n        font-size: 12px;\n        font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n      }\n\n.menu-style-1-title svg {\n      transition: 0.3s all ease;\n      transform: rotate(0deg);\n    }\n\n.menu-style-1-title.open svg {\n        transform: rotate(90deg);\n}\n\n@media screen and (max-width: 768px) {\n\n  .menu-style-1-title {\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n  }\n}\n\n@media screen and (max-width: 1280px) {\n\n  .page-template-page-events .menu-style-1 {\n    display: block;\n    border-bottom: 0;\n    margin-bottom: 32px;\n  }\n}\n\n@media screen and (max-width: 1024px) {\n\n  .page-template-page-events .menu-style-1 {\n    display: none;\n  }\n\n  .page-template-page-events .menu-style-1 .menu_wrapper {\n        width: 100%;\n        text-align: center;\n  }\n\n  .page-template-page-events .menu-style-1-title {\n        display: -webkit-box;\n        display: -ms-flexbox;\n        display: flex;\n  }\n}\n\n@media screen and (max-width: 768px) {\n\n  .menu-style-1 {\n    border-bottom: 0;\n    margin-bottom: 32px;\n    display: none;\n  }\n\n  .menu-style-1 .menu_wrapper {\n      width: 100%;\n      text-align: center;\n  }\n}\n\n.menu-style-1 .choices {\n    margin: 0;\n}\n\n.menu-style-1 .sort-wrapper {\n    margin: 0;\n    flex-shrink: 1;\n    flex-grow: 0;\n    width: 110px;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .menu-style-1.has-select {\n    border-bottom: 0;\n  }\n\n  .menu-style-1.has-select .sort-wrapper {\n        width: 100%;\n        display: -webkit-box;\n        display: -ms-flexbox;\n        display: flex;\n        justify-content: flex-end;\n        padding: 10px 0;\n        border-top: 1px solid #CFCFCF;\n  }\n}\n\n.menu-style-1 ul, .menu-style-1 li {\n    list-style: none;\n    padding: 0;\n    margin: 0;\n}\n\n.menu-style-1 ul {\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    justify-content: flex-start;\n    align-items: center;\n    gap: 24px;\n    flex-shrink: 0;\n    flex-grow: 1;\n    overflow: auto;\n}\n\n@media screen and (max-width: 768px) {\n\n  .menu-style-1 ul {\n    display: block;\n    width: 100%;\n  }\n}\n\n@media screen and (max-width: 768px) {\n\n  .menu-style-1 ul li {\n    width: 100%;\n    border-bottom: 1px solid #CFCFCF;\n  }\n}\n\n.menu-style-1 ul li.checkbox {\n  padding-left: 25px;\n  border-left: 1px solid #CFCFCF;\n  font-weight: 700;\n  font-size: 16px;\n  line-height: 140%;\n  color: #9aaaae;\n  cursor: pointer;\n}\n\n@media screen and (max-width: 768px) {\n\n  .menu-style-1 ul li.checkbox {\n    padding: 15px 0;\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n        justify-content: flex-end;\n    border: 0;\n  }\n}\n\n.menu-style-1 ul li.checkbox label {\n          cursor: pointer;\n          display: -webkit-box;\n          display: -ms-flexbox;\n          display: flex;\n          align-items: center;\n          justify-content: flex-start;\n}\n\n.menu-style-1 ul li.checkbox input[type=\"checkbox\"] {\n          -webkit-appearance: none;\n          -moz-appearance: none;\n               appearance: none;\n          background-color: #fff;\n          margin: 0;\n          font: inherit;\n          color: currentColor;\n          width: 1.15em;\n          height: 1.15em;\n          border: 0.15em solid currentColor;\n          border-radius: 0.15em;\n          transform: translateY(-0.075em);\n          display: grid;\n          align-content: center;\n          justify-content: center;\n          place-content: center;\n          margin-right: 15px;\n}\n\n.menu-style-1 ul li.checkbox input[type=\"checkbox\"]::before {\n          content: \"\";\n          width: 0.65em;\n          height: 0.65em;\n          transform: scale(0);\n          transition: 120ms transform ease-in-out;\n          box-shadow: inset 1em 1em #042C38;\n}\n\n.menu-style-1 ul li.checkbox input[type=\"checkbox\"]:checked::before {\n          transform: scale(1);\n}\n\n.menu-style-1 a {\n    font-weight: bold;\n    color: #9aaaae;\n    display: inline-block;\n    padding: 8px 0;\n    transition: all 0.2s ease-in;\n    border-bottom: 2px solid transparent;\n}\n\n@media screen and (max-width: 768px) {\n\n  .menu-style-1 a {\n    display: block;\n    width: 100%;\n  }\n}\n\n.menu-style-1 a.active,.menu-style-1 a:hover {\n  color: #042C38;\n  border-bottom: 2px solid #D53737;\n}\n\n.menu-style-1 span {\n    font-weight: bold;\n    color: #9aaaae;\n    display: inline-block;\n    padding: 8px 0;\n    transition: all 0.2s ease-in;\n    border-bottom: 2px solid transparent;\n    cursor: not-allowed;\n}\n\n.menu-style-1 span.active,.menu-style-1 span:hover {\n  color: #042C38;\n  border-bottom: 2px solid #D53737;\n}\n\n.menu-style-1.events a {\n      color: #042C38;\n}\n\n.follow-menu-style-1 {\n  z-index: 9999;\n  position: fixed;\n  top: -200px;\n  left: 0;\n  right: 0;\n  background: #FFF;\n  transition: top 0.3s ease-in-out;\n}\n\n.follow-menu-style-1 .choices {\n    margin: 0;\n  }\n\n.follow-menu-style-1 p {\n    margin: 0;\n  }\n\n.follow-menu-style-1 .bg {\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    border-bottom: 2px solid #E3EAEC;\n    padding: 32px 0;\n  }\n\n.follow-menu-style-1 .bg ul, .follow-menu-style-1 .bg li {\n      list-style: none;\n      padding: 0;\n      margin: 0;\n    }\n\n.follow-menu-style-1 .bg ul {\n      display: -webkit-box;\n      display: -ms-flexbox;\n      display: flex;\n      justify-content: flex-start;\n      gap: 24px;\n    }\n\n.follow-menu-style-1 .bg a {\n      font-weight: bold;\n      color: #042C38;\n      display: inline-block;\n      padding: 8px 0;\n      transition: all 0.2s ease-in;\n      border-bottom: 2px solid transparent\n    }\n\n.follow-menu-style-1 .bg a.active,.follow-menu-style-1 .bg a:hover {\n  border-bottom: 2px solid #D53737;\n}\n\n.follow-menu-style-1 .bg span {\n      font-weight: bold;\n      color: #042C38;\n      display: inline-block;\n      padding: 8px 0;\n      transition: all 0.2s ease-in;\n      border-bottom: 2px solid transparent;\n      cursor: not-allowed\n    }\n\n.follow-menu-style-1 .bg span.active,.follow-menu-style-1 .bg span:hover {\n  color: #042C38;\n  border-bottom: 2px solid #D53737;\n}\n\n.follow-menu-style-1.visible {\n  top: 0;\n  transition: top 0.3s ease-in-out;\n}\n\n.filter-form .filter-head {\n    display: none;\n    cursor: pointer;\n    color: #D53737;\n    align-items: center;\n    justify-content: space-between;\n    padding-bottom: 20px;\n    border-bottom: 2px solid #D53737;\n    font-weight: bold;\n    font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n  }\n\n.filter-form .filter-head .selection {\n      display: -webkit-box;\n      display: -ms-flexbox;\n      display: flex;\n      align-items: center;\n    }\n\n.filter-form .filter-head .selection .instructions {\n        padding-left: 15px;\n        color: #cacaca;\n        font-size: 12px;\n        font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n      }\n\n.filter-form .filter-head svg {\n      transition: 0.3s all ease;\n      transform: rotate(0deg);\n    }\n\n.filter-form .filter-head.open svg {\n        transform: rotate(90deg);\n}\n\n@media screen and (max-width: 1280px) {\n\n  .filter-form .filter-head {\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n  }\n}\n\n.filter-form .filter-body {\n    display: block;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .filter-form .filter-body {\n    display: none;\n  }\n}\n\n.breadcrumb {\n  border-top: 1px solid #E3EAEC;\n  margin-bottom: 120px;\n  padding: 16px 0;\n  font-size: 14px;\n  overflow: auto;\n}\n\n.breadcrumb > span {\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    align-items: center;\n    justify-content: flex-start;\n  }\n\n.breadcrumb > span span {\n      vertical-align: middle;\n      display: inline-block;\n      color: #cacaca;\n      margin: 0 5px;\n      white-space: nowrap\n    }\n\n.breadcrumb > span span:first-child {\n  margin-left: 0;\n}\n\n.breadcrumb > span span:last-child {\n  margin-right: 0;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .breadcrumb {\n    margin-bottom: 80px;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .breadcrumb {\n    margin-bottom: 64px;\n  }\n}\n\n.breadcrumb a {\n    color: #cacaca;\n    text-decoration: none;\n    white-space: nowrap;\n}\n\n.breadcrumb a:hover {\n  text-decoration: underline;\n}\n\n.breadcrumb .breadcrumb_last {\n    max-width: 300px;\n    overflow: hidden;\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n}\n\n.popup {\n  background: rgba(4, 44, 56, .9);\n  position: fixed;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  right: 0;\n  z-index: 9999;\n  display: none;\n  opacity: 0;\n  visibility: hidden;\n  overflow: auto;\n  transition: all 0.3s ease\n}\n\n.popup.block {\n  display: block;\n}\n\n.popup.open {\n  opacity: 1;\n  visibility: visible;\n}\n\n.popup .modal {\n    background: #FFF;\n    position: absolute;\n    top: 125px;\n    right: 32px;\n    padding: 70px 135px;\n    border-radius: 8px;\n    max-width: 800px;\n    width: 100%;\n}\n\n@media screen and (max-width: 1024px) {\n\n  .popup .modal {\n    padding: 60px 100px;\n    width: calc(100% - 30px);\n  }\n}\n\n@media screen and (max-width: 768px) {\n\n  .popup .modal {\n    padding: 60px 60px;\n    top: 15px;\n    right: 15px;\n    width: calc(100% - 30px);\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .popup .modal {\n    padding: 60px 15px;\n  }\n}\n\n.popup .modal .close {\n      cursor: pointer;\n      position: absolute;\n      top: 28px;\n      right: 32px;\n}\n\n.submit-news {\n  display: grid;\n  grid-gap: 24px;\n  gap: 24px;\n  grid-auto-rows: 1fr;\n  grid-template-columns: 1fr 1fr;\n  margin: 120px 0;\n  overflow: hidden;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .submit-news {\n    gap: 15px;\n  }\n}\n\n@media screen and (max-width: 1280px) {\n\n  .submit-news {\n    margin:  80px 0;\n  }\n}\n\n@media screen and (max-width: 1024px) {\n\n  .submit-news {\n    margin:  64px 0;\n    grid-template-columns: 1fr;\n    grid-auto-rows: auto;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .submit-news {\n    margin:  32px 0;\n  }\n}\n\n.submit-news.end {\n  margin:  120px 0 0;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .submit-news.end {\n    margin:  80px 0 0;\n  }\n}\n\n@media screen and (max-width: 1024px) {\n\n  .submit-news.end {\n    margin:  64px 0 0;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .submit-news.end {\n    margin:  32px 0 0;\n  }\n}\n\n.submit-news .submit-news-text {\n    background: rgba(227, 234, 236, .5);\n    position: relative;\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    align-items: center;\n}\n\n.submit-news .submit-news-text .tl {\n      position: absolute;\n      top: 0;\n      left: 0;\n    }\n\n.submit-news .submit-news-text .tl svg {\n        display: block;\n      }\n\n@media screen and (max-width: 640px) {\n\n  .submit-news .submit-news-text .tl svg {\n    width: 300px;\n    height: auto;\n  }\n}\n\n.submit-news .submit-news-text .br {\n      position: absolute;\n      bottom: 0;\n      right: 0;\n}\n\n.submit-news .submit-news-text .br svg {\n        display: block;\n      }\n\n@media screen and (max-width: 640px) {\n\n  .submit-news .submit-news-text .br svg {\n    width: 150px;\n    height: auto;\n  }\n}\n\n.submit-news .submit-news-text .content {\n      position: relative;\n      width: 60%;\n      margin: 0 auto;\n      padding: 64px 0;\n      text-align: left;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .submit-news .submit-news-text .content {\n    width: 80%;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .submit-news .submit-news-text .content {\n    width: 100%;\n    padding: 46px 30px;\n  }\n}\n\n.submit-news .submit-news-text .content .b1 {\n        margin-bottom: 20px;\n}\n\n.submit-news .submit-news-text .content .btn {\n        display: inline-block;\n}\n\n.submit-news .submit-news-form {\n    background: rgba(227, 234, 236, .5);\n    position: relative;\n    padding: 46px 135px;\n}\n\n@media screen and (max-width: 640px) {\n\n  .submit-news .submit-news-form {\n    padding: 46px 30px;\n  }\n}\n\n.submit-news-v2 {\n  background: rgba(227, 234, 236, .5);\n  margin: 120px 0;\n  position: relative;\n  overflow: hidden;\n}\n\n.submit-news-v2 .tl {\n    position: absolute;\n    top: 0;\n    left: 0;\n\n  }\n\n.submit-news-v2 .tl svg {\n      display: block;\n      \n    }\n\n@media screen and (max-width: 1024px) {\n\n  .submit-news-v2 .tl svg {\n    display: none;\n  }\n}\n\n.submit-news-v2 .br {\n    position: absolute;\n    bottom: 0;\n    right: 0;\n}\n\n.submit-news-v2 .br svg {\n      display: block;\n    }\n\n@media screen and (max-width: 1024px) {\n\n  .submit-news-v2 .br svg {\n    display: none;\n  }\n}\n\n.submit-news-v2 .content {\n    position: relative;\n    width: 60%;\n    margin: 0 auto;\n    padding: 64px 0;\n    text-align: center;\n}\n\n@media screen and (max-width: 768px) {\n\n  .submit-news-v2 .content {\n    width: 100%;\n    padding: 64px 15px;\n  }\n}\n\n.submit-news-v2 .content .b1 {\n      margin-bottom: 20px;\n}\n\n.submit-news-v2 .content .btn {\n      display: inline-block;\n}\n\n.submit-news-small-v2 {\n  background: rgba(227, 234, 236, .5);\n  margin: 0 0 64px;\n  position: relative;\n  overflow: hidden;\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  padding: 15px;\n  border-radius: 8px;\n}\n\n.submit-news-small-v2 h5 {\n    margin: 0;\n  }\n\n.related_news {\n  padding: 54px 0;\n  border-top: 1px solid #CFCFCF;\n}\n\n@media screen and (max-width: 640px) {\n\n  .related_news h3 {\n      font-size: 28px;\n  }\n}\n\n.related_news .h2 {\n    margin: 0;\n}\n\n.related_news .card-roll {\n    padding: 40px 0;\n    display: grid;\n    grid-gap: 24px;\n    gap: 24px;\n    grid-auto-rows: 1fr;\n    grid-template-columns: 1fr 1fr 1fr 1fr;\n}\n\n@media screen and (max-width: 1280px) {\n\n  .related_news .card-roll {\n    max-width: 750px;\n    margin: 0 auto;\n    grid-template-columns: 1fr 1fr;\n  }\n\n  .related_news .card-roll .s1 {\n        font-size: 26px;\n  }\n\n  .related_news .card-roll .s2 {\n        font-size: 22px;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .related_news .card-roll {\n    grid-template-columns: 1fr;\n  }\n}\n\n.related_projects {\n  padding: 54px 0;\n  border-top: 1px solid #CFCFCF;\n}\n\n.related_projects .h2 {\n    margin: 0;\n  }\n\n.related_projects .card-roll{\n    padding: 40px 0;\n    display: grid;\n    grid-gap: 24px;\n    gap: 24px;\n    grid-auto-rows: 1fr;\n    grid-template-columns: 1fr 1fr;\n  }\n\n@media screen and (max-width: 1280px) {\n\n  .related_projects .card-roll {\n    grid-template-columns: 1fr;\n    max-width: 800px;\n    margin: 0 auto;\n  }\n}\n\n.image-wrapper {\n  width: 100%;\n  position: relative;\n  border-radius: 8px;\n  overflow: hidden;\n}\n\n.image-wrapper .position {\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    right: 0;\n  }\n\n.image-wrapper img {\n    width: 100%;\n    height: 100%;\n    -o-object-fit: cover;\n       object-fit: cover;\n  }\n\n.image-wrapper .hover-element {\n    position: absolute;\n    bottom: -80px;\n    padding: 10px;\n    left: 0;\n    right: 0;\n    transition: all 0.3s ease;\n    z-index: 5;\n  }\n\n.image-wrapper .hover-element p {\n      margin: 0;\n      background: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, .2)), to(rgba(0, 0, 0, .2))), rgba(255, 255, 255, .5);\n      background: linear-gradient(0deg, rgba(0, 0, 0, .2), rgba(0, 0, 0, .2)), rgba(255, 255, 255, .5);\n      -webkit-backdrop-filter: blur(8px);\n              backdrop-filter: blur(8px);\n      border-radius: 4px;\n      display: block;\n      width: 100%;\n      font-style: normal;\n      font-weight: 700;\n      font-size: 14px;\n      line-height: 100%;\n      padding: 8px;\n      text-align: center;\n      color: #FFF;\n      display: -webkit-box;\n      display: -ms-flexbox;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n    }\n\n.image-wrapper .hover-element p span {\n        display: inline-block;\n      }\n\n.image-wrapper .hover-element p svg {\n        display: inline-block;\n\n      }\n\na:hover .image-wrapper .hover-element {\n      bottom: 0px;\n    }\n\n/* Custom Image Styles */\n\n.is-style-rounded-corners img{\n  border-radius: 8px;\n}\n\n.btn {\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  flex-direction: row;\n  justify-content: center;\n  align-items: center;\n  padding: 10px 16px;\n  border-radius: 8px;\n  line-height: 140%;\n  font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n  font-weight: bold;\n  cursor: pointer;\n  border:0;\n  gap: 12px;\n  transition: all 0.3s ease-in;\n}\n\n.btn svg path {\n      transition: all 0.3s ease-in;\n    }\n\n.btn.btnTransparent {\n  background: transparent;\n  color: #081C24;\n}\n\n.btn.btnTransparent:hover {\n  background: #CFCFCF;\n}\n\n.btn.btnRed {\n  background: #D53737;\n  color: #FFF;\n}\n\n.btn.btnRed:hover {\n  background: #951414;\n}\n\n.btn.btnLightRed {\n  background: #FBECEC;\n  color: #081C24;\n}\n\n.btn.btnLightRed:hover {\n  background: #D53737;\n  color: #FFF;\n}\n\n.btn.btnLightRed:hover svg path {\n          stroke: #FFF;\n        }\n\n.btn.btnTeal {\n  background: #387E97;\n  color: #FFF;\n}\n\n.btn.btnTeal:hover {\n  background: #1a3e4b;\n}\n\n.btn.arrow {\n  color:#D53737;\n  background: transparent url(" + ___CSS_LOADER_URL_REPLACEMENT_67___ + ") center right no-repeat;\n  padding-right: 20px;\n  padding-left: 0;\n  padding-top: 0;\n  padding-bottom: 0;\n}\n\n.btn.arrow:hover {\n  padding-right: 25px;\n}\n\n.btn.arrowBlue {\n  color:#042C38;\n  background: transparent url(" + ___CSS_LOADER_URL_REPLACEMENT_68___ + ") center right no-repeat;\n  padding-right: 20px;\n  padding-left: 0;\n  padding-top: 0;\n  padding-bottom: 0;\n}\n\n.btn.arrowBlue:hover {\n  padding-right: 25px;\n}\n\n.btn.btnTransparentRed {\n  color:#D53737;\n  background: transparent;\n  border: 1px solid #D53737;\n  padding: 6px 16px;\n  font-size: 14px;\n  border-radius: 4px;\n}\n\n.btn.btnTransparentRed:hover {\n  background: #D53737;\n  color: #FFF;\n}\n\n.missing-image {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  font-size: 190px\n}\n\n.missing-image.medium {\n  font-size: 100px;\n}\n\n.missing-image.small {\n  font-size: 60px;\n}\n\n.missing-image.tiny {\n  font-size: 14px;\n}\n\n.missing-image.large {\n  font-size: 260px;\n}\n\n.missing-image.feature-newsletter-image {\n  flex-direction: column;\n  gap: 3px;\n}\n\n.missing-image.feature-newsletter-image .large {\n      font-size: 80px;\n      font-weight: bold;\n      line-height: 100%;\n      font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n}\n\n.missing-image.feature-newsletter-image .small {\n      font-size: 35px;\n      line-height: 100%;\n      font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n}\n\n.missing-image.dark {\n  background: #081C24;\n  color: #FFF;\n}\n\n.missing-image.midnight {\n  background: #042C38;\n  color: #FFF;\n}\n\n.missing-image.teal {\n  background: #387E97;\n  color: #FFF;\n}\n\n.missing-image.blue-sapphire {\n  background: #015C77;\n  color: #FFF;\n}\n\n.missing-image.red {\n  background: #D53737;\n  color: #FFF;\n}\n\n.missing-image.dark-red {\n  background: #BB1A1A;\n  color: #FFF;\n}\n\n.missing-image.lavender-blush {\n  background: #FBECEC;\n  color: #042C38;\n}\n\n.missing-image.salmon {\n  background: #FCD3D3;\n  color: #042C38;\n}\n\n.missing-image.alice-blue {\n  background: #E3EAEC;\n  color: #042C38;\n}\n\n.missing-image.gray {\n  background: #CFCFCF;\n  color: #042C38;\n}\n\n.animated-circle {\n  height: 80px;\n  position: relative;\n}\n\n.animated-circle svg {\n    position: absolute;\n    width: 72%;\n    height: auto;\n  }\n\n.animated-circle svg circle {\n      stroke-dasharray: 2075;\n      stroke-dashoffset: 2075;\n      transition: all 5s ease-in-out;\n    }\n\n.animated-circle.start svg circle {\n        stroke-dashoffset: 0;\n      }\n\n@media screen and (max-width: 1280px) {\n\n  .animated-circle {\n    display: none;\n  }\n}\n\n@keyframes dash {\n  to {\n    stroke-dashoffset: 0;\n    }\n    from {\n    stroke-dashoffset: 2075;\n    }\n}\n\n.animated-circle-2 {\n  position: relative;\n}\n\n@media screen and (max-width: 1024px) {\n\n  .animated-circle-2 {\n    display: none;\n  }\n}\n\n.animated-circle-2 svg {\n    position: absolute;\n    top: 310px;\n}\n\n.animated-circle-2 svg path {\n      stroke-dasharray: 1200;\n      stroke-dashoffset: -1200;\n      transition: all 5s ease-in-out;\n    }\n\n.animated-circle-2.start svg path {\n        stroke-dashoffset: 0;\n      }\n\n.animated-circle-3 {\n  position: relative;\n}\n\n.animated-circle-3 svg {\n    position: absolute;\n    top: 310px;\n  }\n\n.animated-circle-3 svg rect {\n      stroke-dasharray: 1200;\n      stroke-dashoffset: -1200;\n      transition: all 5s ease-in-out;\n    }\n\n@media screen and (max-width: 1024px) {\n\n  .animated-circle-3 {\n    display: none;\n  }\n}\n\n.animated-circle-3.start svg rect {\n        stroke-dashoffset: 0;\n      }\n\n.animated-circle-4 {\n  position: relative;\n}\n\n.animated-circle-4 svg {\n    position: absolute;\n    top: 310px;\n  }\n\n.animated-circle-4 svg path {\n      stroke-dasharray: 900;\n      stroke-dashoffset: -900;\n      transition: all 5s ease-in-out;\n    }\n\n@media screen and (max-width: 1024px) {\n\n  .animated-circle-4 {\n    display: none;\n  }\n}\n\n.animated-circle-4.start svg path {\n        stroke-dashoffset: 0;\n      }\n\n.animated-circle-5 {\n  position: relative;\n}\n\n.animated-circle-5 svg {\n    position: absolute;\n    top: 610px;\n  }\n\n.animated-circle-5 svg path {\n      stroke-dasharray: 650;\n      stroke-dashoffset: -650;\n      transition: all 5s ease-in-out;\n    }\n\n.animated-circle-5.low svg {\n      top: 1010px;\n}\n\n@media screen and (max-width: 1024px) {\n\n  .animated-circle-5 {\n    display: none;\n  }\n}\n\n.animated-circle-5.start svg path {\n        stroke-dashoffset: 0;\n      }\n\n.animated-oval {\n  position: relative;\n}\n\n.animated-oval svg {\n    position: absolute;\n    right: -100px;\n    top: -200px;\n  }\n\n.animated-oval svg rect {\n      stroke-dasharray: 3050;\n      stroke-dashoffset: 3050;\n      transition: all 5s linear;\n    }\n\n.animated-oval.start svg rect {\n        stroke-dashoffset: 0;\n      }\n\n@media screen and (max-width: 1280px) {\n\n  .animated-oval {\n    display: none;\n  }\n}\n\n@keyframes dash {\n  to {\n    stroke-dashoffset: 0;\n    }\n    from {\n    stroke-dashoffset: 3050;\n    }\n}\n\n.z1 {\n  z-index: 100;\n  position: relative;\n}\n\n.z2 {\n  z-index: 200;\n  position: relative;\n}\n\n.z3 {\n  z-index: 300;\n  position: relative;\n}\n\n.z4 {\n  z-index: 400;\n  position: relative;\n}\n\n.z5 {\n  z-index: 500;\n  position: relative;\n}\n\n.page_not_found {\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  padding: 80px 0;\n  justify-content: center;\n  align-items: center;\n  text-align: center;\n}\n\n.form .sidebar .form-reset-button {\n      position: absolute;\n      right: 15px;\n      top: 50%;\n      margin-top: -10px;\n      cursor: pointer;\n      visibility: hidden;\n      opacity: 0;\n      transition: all 0.3s ease\n    }\n\n.form .sidebar .form-reset-button.visible {\n  visibility: visible;\n  opacity: 1;\n}\n\n.form .sidebar label {\n      position: relative;\n      background: #F5F5F5;\n      border-radius: 8px;\n      color: #042C38;\n      padding: 18px 16px;\n      width: 100%;\n      margin: 0;\n    }\n\n.form .sidebar .input-wrapper {\n      position: relative;\n      margin-bottom: 2px;\n    }\n\n.form .sidebar .input-wrapper .choices {\n        overflow: visible;\n      }\n\n.form .sidebar .input-wrapper .choices .choices__inner {\n          background: #F5F5F5;\n          border-radius: 8px;\n          color: #042C38;\n          border: none;\n          min-height: 56px;\n          padding: 12.5px 7.5px;\n          font-size: 16px;\n          font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n          font-weight: 500;\n        }\n\n.form .sidebar .input-wrapper .choices .choices__item {\n          white-space: nowrap;\n          overflow: hidden;\n          text-overflow: ellipsis;\n        }\n\n.form .sidebar .input-wrapper .choices .choices__list--dropdown, .form .sidebar .input-wrapper .choices .choices__list[aria-expanded] {\n          width: auto;\n          min-width: 100%;\n          max-width: 100%;\n          overflow-x: hidden;\n          overflow-y: auto;\n        }\n\n.form .sidebar .input-wrapper .choices[data-type*=\"select-one\"]::after {\n  border: none;\n  content: \"\";\n  margin-top: -3px;\n  pointer-events: none;\n  position: absolute;\n  right: 11.5px;\n  top: 50%;\n  width: 12px;\n  height: 6px;\n  background: url(" + ___CSS_LOADER_URL_REPLACEMENT_69___ + ");\n  background-size: 12px 6px;\n}\n\n.form .sidebar .input-wrapper .choices[data-type*=\"select-one\"].is-open::after {\n        transform: rotate(180deg);\n}\n\n.form .sidebar .input-wrapper .choices[data-type*=select-one] > .choices__list > .choices__list > .choices__item--selectable\n      {\n        padding-right: 10px;\n        white-space: nowrap;\n        overflow: hidden;\n        text-overflow: ellipsis;\n        font-size: 13px;\n      }\n\n.form .sidebar .input-wrapper .choices[data-type*=select-one] > .choices__list > .choices__list > .choices__item--selectable::after\n      {\n        display: none;\n      }\n\n.form .sidebar .input-wrapper input {\n        width: 100%;\n        height: 56px;\n        border-radius: 8px;\n        font-weight: 500;\n        line-height: 1.4;\n        color: #081C24;\n        padding: 12.5px 7.5px;\n        border: none;\n        background: #F5F5F5 url(" + ___CSS_LOADER_URL_REPLACEMENT_70___ + ") center right+16px no-repeat;\n      }\n\n.form .sidebar .input-wrapper .submit {\n        display: -webkit-box;\n        display: -ms-flexbox;\n        display: flex;\n        flex-direction: row;\n        justify-content: center;\n        align-items: center;\n        padding: 10px 16px;\n        background: #387E97;\n        border-radius: 8px;\n\n        font-style: normal;\n        font-weight: 700;\n        font-size: 16px;\n        line-height: 140%;\n        color: #FFF;\n        display: block;\n        border: none;\n        width: 100%;\n\n        cursor: pointer;\n      }\n\nhtml .body-wrapper .form_embed .cog-cognito--styled textarea, \n    html .body-wrapper .form_embed .cog-cognito--styled select, \n    html .body-wrapper .form_embed .cog-cognito--styled input[type=\"text\"], \n    html .body-wrapper .form_embed .cog-cognito--styled [type=\"tel\"], \n    html .body-wrapper .form_embed .cog-cognito--styled [type=\"password\"], \n    html .body-wrapper .form_embed .cog-cognito--styled [type=\"date\"], \n    html .body-wrapper .form_embed .cog-cognito--styled [type=\"email\"], \n    html .body-wrapper .form_embed .cog-cognito--styled [type=\"url\"], \n    html .body-wrapper .form_embed .cog-cognito--styled [type=\"time\"], \n    html .body-wrapper .form_embed .cog-cognito--styled textarea, \n    html .body-wrapper .form_embed .cog-cognito--styled select, \n    html .body-wrapper .form_embed .cog-cognito--styled input[type=\"text\"], \n    html .body-wrapper .form_embed .cog-cognito--styled [type=\"tel\"], \n    html .body-wrapper .form_embed .cog-cognito--styled [type=\"password\"], \n    html .body-wrapper .form_embed .cog-cognito--styled [type=\"date\"], \n    html .body-wrapper .form_embed .cog-cognito--styled [type=\"email\"], \n    html .body-wrapper .form_embed .cog-cognito--styled [type=\"url\"], \n    html .body-wrapper .form_embed .cog-cognito--styled [type=\"time\"], \n    :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled textarea, \n    :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled select, \n    :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled input[type=\"text\"], \n    :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"tel\"], \n    :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"password\"], \n    :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"date\"], \n    :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"email\"], \n    :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"url\"], \n    :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"time\"], \n    :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled textarea, \n    :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled select, \n    :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled input[type=\"text\"], \n    :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"tel\"], \n    :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"password\"], \n    :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"date\"], \n    :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"email\"], \n    :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"url\"], \n    :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"time\"] {\n      background: transparent;\n      border: 0;\n      border-bottom: 1px solid #387E97;\n      font-style: normal;\n      font-weight: 700;\n      font-size: 16px;\n      line-height: 120%;\n      color: #042C38\n    }\n\nhtml .body-wrapper .form_embed .cog-cognito--styled textarea:focus, html .body-wrapper .form_embed .cog-cognito--styled select:focus, html .body-wrapper .form_embed .cog-cognito--styled input[type=\"text\"]:focus, html .body-wrapper .form_embed .cog-cognito--styled [type=\"tel\"]:focus, html .body-wrapper .form_embed .cog-cognito--styled [type=\"password\"]:focus, html .body-wrapper .form_embed .cog-cognito--styled [type=\"date\"]:focus, html .body-wrapper .form_embed .cog-cognito--styled [type=\"email\"]:focus, html .body-wrapper .form_embed .cog-cognito--styled [type=\"url\"]:focus, html .body-wrapper .form_embed .cog-cognito--styled [type=\"time\"]:focus, html .body-wrapper .form_embed .cog-cognito--styled textarea:focus, html .body-wrapper .form_embed .cog-cognito--styled select:focus, html .body-wrapper .form_embed .cog-cognito--styled input[type=\"text\"]:focus, html .body-wrapper .form_embed .cog-cognito--styled [type=\"tel\"]:focus, html .body-wrapper .form_embed .cog-cognito--styled [type=\"password\"]:focus, html .body-wrapper .form_embed .cog-cognito--styled [type=\"date\"]:focus, html .body-wrapper .form_embed .cog-cognito--styled [type=\"email\"]:focus, html .body-wrapper .form_embed .cog-cognito--styled [type=\"url\"]:focus, html .body-wrapper .form_embed .cog-cognito--styled [type=\"time\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled textarea:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled select:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled input[type=\"text\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"tel\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"password\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"date\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"email\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"url\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"time\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled textarea:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled select:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled input[type=\"text\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"tel\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"password\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"date\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"email\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"url\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"time\"]:focus {\n      box-shadow: none;\n}\n\nhtml .body-wrapper .form_embed .cog-form__container,\n    html .body-wrapper .form_embed .cog-form__container,\n    :root:root:root:root:root .body-wrapper .form_embed .cog-form__container,\n    :root:root:root:root:root .body-wrapper .form_embed .cog-form__container {\n      background: transparent;\n    }\n\n/*\n    .cog-label, \n    .cog-label {\n      display: none;\n    }\n    */\n\nhtml .body-wrapper .form_embed .cog-row .cog-col:not(td), :root:root:root:root:root .body-wrapper .form_embed .cog-row .cog-col:not(td) {\n        width: 100%;\n      }\n\nhtml .body-wrapper .form_embed .cog-cognito--styled .cog-button--primary,\n      html .body-wrapper .form_embed .cog-cognito--styled .cog-page__navigation .cog-button,\n      html .body-wrapper .form_embed .cog-cognito--styled .cog-button--primary,\n      html .body-wrapper .form_embed .cog-cognito--styled .cog-page__navigation .cog-button,\n      :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled .cog-button--primary,\n      :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled .cog-page__navigation .cog-button,\n      :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled .cog-button--primary,\n      :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled .cog-page__navigation .cog-button {\n        display: -webkit-box;\n        display: -ms-flexbox;\n        display: flex;\n        flex-direction: row;\n        justify-content: center;\n        align-items: center;\n        padding: 10px 24px;\n        border-radius: 8px;\n        line-height: 140%;\n        font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n        font-weight: bold;\n        cursor: pointer;\n        border: 0;\n        gap: 12px;\n        transition: all 0.3s ease-in;\n        color: #FFF;\n        background: #D53737;\n      }\n\nhtml .body-wrapper .form_embed .cog-cognito--styled .cog-button--secondary, \n      html .body-wrapper .form_embed .cog-cognito--styled .cog-button--secondary, \n      :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled .cog-button--secondary, \n      :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled .cog-button--secondary {\n        background: #387E97;\n        border: 1px solid #387E97;\n        border-radius: 2px;\n        padding: 2px 10px;\n        color: #FFF;\n        line-height: 140%;\n        font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n        font-weight: bold;\n      }\n\nhtml .body-wrapper .form_embed .cog-checkable .el-radio__label.el-radio__label, \n    html .body-wrapper .form_embed .cog-checkable .el-checkbox__label.el-checkbox__label, \n    :root:root:root:root:root .body-wrapper .form_embed .cog-checkable .el-radio__label.el-radio__label, \n    :root:root:root:root:root .body-wrapper .form_embed .cog-checkable .el-checkbox__label.el-checkbox__label {\n      font-style: normal;\n      font-weight: 400;\n      font-size: 14px;\n      line-height: 140%;\n      color: #042C38;\n    }\n\n.pagination-load-more {\n  text-align: center;\n  padding: 120px 0 0;\n}\n\n@media screen and (max-width: 1024px) {\n\n  .pagination-load-more {\n    padding: 80px 0 0;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  .pagination-load-more {\n    padding: 64px 0 0;\n  }\n}\n\n.pagination-load-more a {\n    padding:12px 24px;\n    background: #387E97;\n    color: #FFF;\n    display: inline-block;\n    font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n    font-size: 16px;\n    font-style: normal;\n    font-weight: bold;\n    line-height: 120%;\n    border-radius: 8px;\n    text-align: center;\n}\n\n.pagination-load-more a.hidden {\n  display: none;\n}\n\n.pagination-numbers {\n  padding-top: 80px;\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  align-items: center;\n  justify-content: flex-end;\n  gap: 8px;\n}\n\n.pagination-numbers .page-numbers {\n    padding: 6px 8px;\n    color: #042C38;\n    opacity: 0.5; \n    transition: all 0.3s ease;\n    border: 1px solid transparent;\n    border-radius: 4px\n  }\n\n.pagination-numbers .page-numbers.next,.pagination-numbers .page-numbers.prev {\n  padding: 0;\n  border: 0;\n  opacity: 1;\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n    align-items: center;\n}\n\n.pagination-numbers .page-numbers:hover {\n  opacity: 1;\n  border: 1px solid #042C38;\n}\n\n.pagination-numbers .page-numbers:hover.next,.pagination-numbers .page-numbers:hover.prev {\n  border: 0;\n  opacity: 0.5;\n}\n\n.pagination-numbers .page-numbers.current {\n  opacity: 1;\n  border: 1px solid #042C38;\n}\n\n.wp-block-audio {\n  margin-bottom: 25px;\n}\n\n.wp-block-embed {\n  margin-bottom: 25px;\n}\n\n.wp-element-caption {\n  font-size: 14px;\n}\n\n.wp-block-embed.is-type-video.is-provider-youtube .wp-block-embed__wrapper{ \n  position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%;\n}\n\n.wp-block-embed.is-type-video.is-provider-youtube .wp-block-embed__wrapper iframe, .wp-block-embed.is-type-video.is-provider-youtube .wp-block-embed__wrapper object, .wp-block-embed.is-type-video.is-provider-youtube .wp-block-embed__wrapper embed { \n    position: absolute; top: 0; left: 0; width: 100%; height: 100%; \n  }\n\n.special_underline {\n    background: transparent url(" + ___CSS_LOADER_URL_REPLACEMENT_71___ + ") 0 0 no-repeat;\n    background-size: auto 100%;\n    display: block;\n    padding: 2px 0 2px 37px;\n    margin: 0 0 25px;\n    font-style: normal;\n    font-weight: 700;\n    font-size: 16px;\n    line-height: 120%;\n    color: #387E97;\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n}\n\n#login-popup.load-login {\n  position: fixed;\n  z-index: 99999999;\n  top:0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  background: rgba(0, 0, 0, .55);\n  display: none;\n  visibility: hidden;\n  opacity: 0;\n  transition: all 0.3s ease;\n  width: 100%;\n  height: 100%;\n}\n\n#login-popup.load-login .open-login-popup {\n      cursor: pointer;\n      position: absolute;\n      top: 15px;\n      right: 15px;\n      width: 24px;\n      height: 24px;\n}\n\n#login-popup.load-login .modal {\n      position: fixed;\n      z-index: 99999999;\n      top:120px;\n      left: 50%;\n      margin-left: -200px;\n      background: #FFF;\n      display: none;\n      visibility: hidden;\n      opacity: 0;\n      transition: all 0.6s ease;\n      border-radius: 8px;\n      box-shadow: 5px 5px 15px 0px rgba(0, 0, 0, .15);\n      padding: 30px;\n      max-width: 400px;\n      width: 100%;\n}\n\n@media screen and (max-width: 400px) {\n\n  #login-popup.load-login .modal {\n    left: 15px;\n    right: 15px;\n    width: auto;\n    margin-left: 0;\n  }\n}\n\n@media screen and (max-width: 1280px) {\n\n  #login-popup.load-login {\n                }\n}\n\n#login-popup.load-login.open {\n  display: block;\n}\n\n#login-popup.load-login.open .modal {\n        display: block;\n}\n\n#login-popup.load-login.open.animate {\n  visibility: visible;\n  opacity: 1;\n}\n\n#login-popup.load-login.open.animate .modal {\n          visibility: visible;\n          opacity: 1;\n          top: 40px;\n}\n\n#login-popup.load-account {\n  position: fixed;\n  z-index: 99999999;\n  top:0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  background: rgba(0, 0, 0, .55);\n  display: none;\n  visibility: hidden;\n  opacity: 0;\n  transition: all 0.3s ease;\n  width: 100%;\n  height: 100%;\n}\n\n#login-popup.load-account .open-login-popup {\n      cursor: pointer;\n      position: absolute;\n      top: 15px;\n      right: 15px;\n      width: 24px;\n      height: 24px;\n}\n\n#login-popup.load-account .modal {\n      position: fixed;\n      z-index: 99999999;\n      top:120px;\n      left: 50%;\n      margin-left: -200px;\n      background: #FFF;\n      display: none;\n      visibility: hidden;\n      opacity: 0;\n      transition: all 0.6s ease;\n      border-radius: 8px;\n      box-shadow: 5px 5px 15px 0px rgba(0, 0, 0, .15);\n      padding: 30px;\n      max-width: 400px;\n      width: 100%;\n}\n\n@media screen and (max-width: 400px) {\n\n  #login-popup.load-account .modal {\n    left: 15px;\n    right: 15px;\n    width: auto;\n    margin-left: 0;\n  }\n}\n\n#login-popup.load-account.open {\n  display: block;\n}\n\n#login-popup.load-account.open .modal {\n        display: block;\n}\n\n#login-popup.load-account.open.animate {\n  visibility: visible;\n  opacity: 1;\n}\n\n#login-popup.load-account.open.animate .modal {\n          visibility: visible;\n          opacity: 1;\n          top: 120px;\n}\n\n.page-template-page-home .breadcrumb {\n    display: none;\n  }\n\nhtml #funding .single-detail {\n    max-width: 800px;\n    margin: 0 auto 0;\n\n  }\n\n@media screen and (max-width: 1024px) {\n\n  html #funding .single-detail {\n    margin: 0 auto 0;\n  }\n}\n\nhtml #funding .single-detail .free-input h1,html #funding .single-detail .free-input .h1 {\n        font-size: 50px;\n      }\n\n@media screen and (max-width: 768px) {\n\n  html #funding .single-detail .free-input h1,html #funding .single-detail .free-input .h1 {\n    font-size: 38px;\n  }\n}\n\nhtml #funding .single-detail .free-input h2,html #funding .single-detail .free-input .h2 {\n        font-size: 32px;\n}\n\nhtml #funding .single-detail .free-input h3,html #funding .single-detail .free-input .h3 {\n        font-size: 22px;\n}\n\nhtml #funding .single-detail .free-input h4,html #funding .single-detail .free-input .h4 {\n        font-size: 18px;\n}\n\nhtml #funding .single-detail .free-input h5,html #funding .single-detail .free-input .h5 {\n        font-size: 16px;\n}\n\nhtml #funding .single-detail .free-input h6,html #funding .single-detail .free-input .h6 {\n        font-size: 16px;\n}\n\nhtml #funding .meta-title {\n    font-size: 14px;\n    color: #387E97;\n    margin: 0 0 15px;\n}\n\nhtml #funding .main-title {\n    margin: 0 0 32px;\n}\n\nhtml #funding .contact {\n    margin-top: 80px;\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    justify-content: flex-start;\n    align-items: center;\n    gap: 0 24px;\n}\n\n@media screen and (max-width: 1024px) {\n\n  html #funding .contact {\n    margin-top: 32px;\n  }\n}\n\nhtml #funding .contact p {\n      margin: 0;\n      display: -webkit-box;\n      display: -ms-flexbox;\n      display: flex;\n      gap: 0 8px;\n      align-items: center;\n}\n\nhtml #funding .contact p a {\n        border: 1px solid #CFCFCF;\n        padding: 6px 14px;\n        color: #081C24;\n        transition: all 0.3s ease-in;\n        display: -webkit-box;\n        display: -ms-flexbox;\n        display: flex;\n        margin-left: 8px;\n        gap: 0 8px;\n        align-items: center\n      }\n\nhtml #funding .contact p a:hover {\n  background: #CFCFCF;\n}\n\n@media screen and (max-width: 1024px) {\n\n  html #funding .submit-news-v2 {\n    margin: 64px 0;\n  }\n}\n\nhtml #funding .submission_form {\n    display: grid;\n    grid-auto-rows: 1fr;\n    grid-template-columns: 1fr 1fr;\n    padding: 0px;\n    grid-gap: 24px;\n    gap: 24px;\n}\n\n@media screen and (max-width: 1024px) {\n\n  html #funding .submission_form {\n    grid-template-columns: 1fr;\n    grid-auto-rows: auto;\n    display: block;\n  }\n}\n\nhtml #funding .submission_form .form_content {\n      background: rgba(227, 234, 236, .5);\n      flex-shrink: 0;\n      flex-basis: 50%;\n      padding: 110px 120px;\n      position: relative;\n      overflow: hidden;\n      border-radius: 8px;\n}\n\n@media screen and (max-width: 1280px) {\n\n  html #funding .submission_form .form_content {\n    padding: 80px 60px;\n  }\n}\n\n@media screen and (max-width: 1024px) {\n\n  html #funding .submission_form .form_content {\n    margin-bottom: 60px;\n  }\n}\n\n@media screen and (max-width: 768px) {\n\n  html #funding .submission_form .form_content {\n    padding: 80px 15px;\n  }\n}\n\nhtml #funding .submission_form .form_content .bg {\n        position: absolute;\n        top: 0;\n        left: 0;\n}\n\nhtml #funding .submission_form .form_content p {\n        color: #042C38;\n}\n\nhtml #funding .submission_form .form_embed {\n      background: rgba(227, 234, 236, .5);\n      border-radius: 8px;\n      flex-shrink: 0;\n      flex-basis: 50%;\n      padding: 110px 120px;\n}\n\n@media screen and (max-width: 1280px) {\n\n  html #funding .submission_form .form_embed {\n    padding: 80px 60px;\n  }\n}\n\n@media screen and (max-width: 768px) {\n\n  html #funding .submission_form .form_embed {\n    padding: 80px 15px;\n  }\n}\n\n#stories-of-change .card-wrapper {\n        border-top: 1px solid #E3EAEC;\n        padding-top: 120px;\n        display: grid;\n        grid-gap: 120px 20px;\n        gap: 120px 20px;\n        grid-auto-rows: 1fr;\n        grid-template-columns: 2fr 7fr;\n    }\n\n@media screen and (max-width: 768px) {\n\n  #stories-of-change .card-wrapper {\n    grid-template-columns: 1fr 7fr;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  #stories-of-change .card-wrapper {\n    grid-template-columns: 1fr;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  #stories-of-change .card-wrapper .year-warpper {\n    display: none;\n  }\n}\n\n#stories-of-change .card-wrapper .year-warpper .sticky {\n                position: sticky;\n                top: 120px;\n}\n\n#stories-of-change .card-wrapper .year-warpper ul {\n                list-style: none;\n                padding: 0;\n                margin: 0;\n}\n\n#stories-of-change .card-wrapper .year-warpper ul li {\n                    margin: 0 0 24px;\n                }\n\n@media screen and (max-width: 768px) {\n\n  #stories-of-change .card-wrapper .year-warpper ul li {\n    margin: 0 0 12px;\n  }\n}\n\n#stories-of-change .card-wrapper .year-warpper ul li span {\n                        display: inline-block;\n                        margin: 0;\n                        cursor: pointer;\n                        transition: all 0.3s ease-in;\n}\n\n@media screen and (max-width: 768px) {\n\n  #stories-of-change .card-wrapper .year-warpper ul li span {\n    font-size: 30px;\n  }\n}\n\n#stories-of-change .card-wrapper .year-warpper ul li span.pos-1 {\n  opacity: 1;\n}\n\n#stories-of-change .card-wrapper .year-warpper ul li span.pos-2 {\n  opacity: 0.5;\n}\n\n#stories-of-change .card-wrapper .year-warpper ul li span.pos-3 {\n  opacity: 0.3;\n}\n\n#stories-of-change .card-wrapper .year-warpper ul li span.pos-4 {\n  opacity: 0.2;\n}\n\n#stories-of-change .card-wrapper .year-warpper ul li span.pos-5 {\n  opacity: 0.1;\n}\n\n#stories-of-change .card-wrapper .year-warpper ul li span.pos-6 {\n  opacity: 0.1;\n}\n\n#stories-of-change .card-wrapper .year-warpper ul li span.pos-7 {\n  opacity: 0.1;\n}\n\n#stories-of-change .card-wrapper .year-warpper ul li span.active, #stories-of-change .card-wrapper .year-warpper ul li span:hover, #stories-of-change .card-wrapper .year-warpper ul li span:focus {\n  color: #D53737;\n  opacity: 1;\n}\n\n#stories-of-change .card-wrapper .cards .impact-story-card {\n                display: grid;\n                grid-gap: 0px 80px;\n                gap: 0px 80px;\n                grid-auto-rows: 1fr;\n                grid-template-columns: 1fr 1fr;\n                margin-bottom: 120px;\n            }\n\n@media screen and (max-width: 640px) {\n\n  #stories-of-change .card-wrapper .cards .impact-story-card {\n    grid-template-columns: 1fr;\n    margin-bottom: 32px;\n  }\n}\n\n@media screen and (max-width: 1280px) {\n\n  #stories-of-change .card-wrapper .cards .impact-story-card {\n    gap: 0px 32px;\n  }\n}\n\n#stories-of-change .card-wrapper .cards .impact-story-card .content-wrapper {\n                    display: -webkit-box;\n                    display: -ms-flexbox;\n                    display: flex;\n                    align-items: center;\n                    justify-content: flex-start;\n}\n\n#stories-of-change .card-wrapper .cards .impact-story-card .content-wrapper .wrap {\n                        width: 100%;\n                        padding-top: 40px;\n                        border-top: 2px solid #042C38;\n                        transition: all 0.3s ease;\n                    }\n\n#stories-of-change .card-wrapper .cards .impact-story-card .content-wrapper .wrap span {\n                            margin: 0 0 12px;\n                        }\n\n#stories-of-change .card-wrapper .cards .impact-story-card .content-wrapper .wrap .metadata {\n                            color: #387E97;\n                            display: block;\n                            margin: 0 0 15px;\n                            font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n                            display: -webkit-box;\n                            display: -ms-flexbox;\n                            display: flex;\n                            align-items: center;\n                        }\n\n#stories-of-change .card-wrapper .cards .impact-story-card .content-wrapper .wrap .metadata .ellipse {\n                              width: 6px;\n                              height: 6px;\n                              display: inline-block;\n                              background: #387E97;\n                              margin: 0 8px;\n                              border-radius: 90px;\n                            }\n\n#stories-of-change .card-wrapper .cards .impact-story-card .content-wrapper .wrap .h5 {\n                            margin: 0 0 40px;\n                        }\n\n#stories-of-change .card-wrapper .cards .impact-story-card .content-wrapper .wrap .button-wrapper {\n                            transition: all 0.3s ease-in;\n                            opacity: 0;\n                        }\n\n@media screen and (max-width: 640px) {\n\n  #stories-of-change .card-wrapper .cards .impact-story-card .content-wrapper .wrap .button-wrapper {\n    opacity: 1;\n  }\n}\n\n#stories-of-change .card-wrapper .cards .impact-story-card .content-wrapper .wrap .button-wrapper .btn {\n                                display: inline-block;\n}\n\n#stories-of-change .card-wrapper .cards .impact-story-card .image-wrapper {\n                    padding-bottom: 65%;\n}\n\n#stories-of-change .card-wrapper .cards .impact-story-card:hover .content-wrapper .wrap {\n                            border-top: 2px solid #D53737;\n                        }\n\n#stories-of-change .card-wrapper .cards .impact-story-card:hover .content-wrapper .wrap .button-wrapper {\n                                opacity: 1;\n                            }\n\n#FAQ {\n    padding-bottom: 60px;\n}\n\n#FAQ .menu-style-1 {\n        justify-content: flex-start;\n    }\n\n#FAQ .menu-style-1 .menu_wrapper {\n            flex-basis: 652px;\n            flex-shrink: 0;\n            display: -webkit-box;\n            display: -ms-flexbox;\n            display: flex;\n            justify-content: flex-start;\n  \n        }\n\n@media screen and (max-width: 1024px) {\n\n  #FAQ .menu-style-1 .menu_wrapper {\n        flex-basis: 100%;\n  }\n}\n\n#FAQ .menu-style-1 ul {\n            justify-content: flex-start;\n}\n\n#FAQ .align-right {\n        display: -webkit-box;\n        display: -ms-flexbox;\n        display: flex;\n        justify-content: flex-end;\n        flex-direction: column;\n        align-items: flex-start;\n}\n\n#FAQ .align-right .faq_card {\n            max-width: 652px;\n            width: 100%;\n            background: rgba(227, 234, 236, .5);\n            border-radius: 8px;\n            margin-bottom: 24px;\n        }\n\n@media screen and (max-width: 1024px) {\n\n  #FAQ .align-right .faq_card {\n    max-width: 100%;\n  }\n}\n\n#FAQ .align-right .faq_card .title {\n                margin: 0;\n                position: relative;\n                padding: 40px;\n                cursor: pointer;\n}\n\n#FAQ .align-right .faq_card .title svg {\n                    position: absolute;\n                    right: 0px;\n                    top: 0px;\n                    transform: rotate(0deg);\n                    transition: all 0.3s ease;\n                }\n\n#FAQ .align-right .faq_card .title h3 {\n                    margin: 0;\n                    padding-right: 30px;\n                    position: relative;\n                }\n\n#FAQ .align-right .faq_card .body {\n                display: none;\n                padding: 0 40px 40px;\n}\n\n#FAQ .align-right .faq_card .body a {\n                    color: #042C38;\n                    text-decoration: underline\n                }\n\n#FAQ .align-right .faq_card .body a:hover {\n  text-decoration: none;\n}\n\n#FAQ .align-right .faq_card.open .title svg {\n                        transform: rotate(180deg);\n                    }\n\n#contact .wrap {\n    display: grid;\n    grid-gap: 20px 120px;\n    gap: 20px 120px;\n    grid-auto-rows: 1fr;\n    grid-template-columns: 1fr 1fr;\n    padding-bottom: 120px;\n  }\n\n@media screen and (max-width: 1024px) {\n\n  #contact .wrap {\n    grid-template-columns: 1fr;\n    grid-auto-rows: auto;\n  }\n}\n\n#contact h1  {\n    margin-bottom: 80px;\n}\n\n#contact .content p {\n      margin: 10px 0;\n    }\n\n#contact .content p strong {\n        font-size: 18px;\n      }\n\n#auth-page {\n  padding: 120px 0;\n}\n\n@media screen and (max-width: 640px) {\n\n  #auth-page {\n    padding: 64px 0;\n  }\n}\n\n#auth-page .title-wrapper p {\n      font-size: 12px;\n      color: #848484;\n      margin: 15px 0;\n    }\n\n#auth-page .title-wrapper p a {\n        text-decoration: underline;\n        color: #848484\n      }\n\n#auth-page .title-wrapper p a:hover {\n  text-decoration: none;\n}\n\n#auth-page .main {\n    display: grid;\n    grid-gap: 40px 20px;\n    gap: 40px 20px;\n    grid-auto-rows: 1fr;\n    grid-template-columns: 1fr 1fr;\n}\n\n@media screen and (max-width: 640px) {\n\n  #auth-page .main {\n    grid-auto-rows: auto;\n    grid-template-columns: 1fr;\n  }\n}\n\n#employment .employment_wrapper {\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    align-items: flex-start;\n    justify-content: flex-end;\n    margin-bottom: 80px;\n  }\n\n#employment .employment_wrapper .content {\n      flex-shrink: 0;\n      width: 50%;\n    }\n\n@media screen and (max-width: 1280px) {\n\n  #employment .employment_wrapper .content {\n    width: 100%;\n  }\n}\n\n#employment .employment_wrapper .content h5 {\n          font-size: 22px;\n}\n\n#employment .employment_wrapper .content h6 {\n          font-size: 14px;\n          line-height: 100%;\n          text-transform: uppercase;\n          color: #387E97;\n          margin: 0 0 15px;\n}\n\n#employment .employment_wrapper .content ul,#employment .employment_wrapper .content ol {\n          margin: 15px 0 25px;\n          padding-left: 15px;\n}\n\n#employment .employment_wrapper .content ul li, #employment .employment_wrapper .content ol li {\n            margin-bottom: 5px;\n          }\n\n#employment .employment_wrapper .content ul {\n          list-style-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_64___ + ");\n          position: relative;\n          padding-left: 15px;\n}\n\n#employment .employment_wrapper .content ul li {\n            position: relative;\n            padding-left: 15px;\n            margin-bottom: 0;\n            padding-bottom: 15px\n          }\n\n#employment .employment_wrapper .content ul li:before {\n  content: \"\";\n  position: absolute;\n  left: -15px;\n  top: 15px;\n  height: calc(100% - 13px);\n  display: block;\n  width: 1px;\n  background: #E3E5E6;\n}\n\n#employment .employment_wrapper .content ul li:last-child:before {\n  height: calc(100% - 30px);\n}\n\n#organisation {\n  padding-bottom: 120px;\n}\n\n@media screen and (max-width: 640px) {\n\n  #organisation {\n    padding-bottom: 64px;\n  }\n}\n\n#organisation .free-input > p:first-child strong {\n        font-size: 20px;\n      }\n\n#organisation .free-input p {\n      margin-bottom: 30px;\n    }\n\n#organisation .infographics {\n    padding-top: 120px;\n}\n\n@media screen and (max-width: 640px) {\n\n  #organisation .infographics {\n    padding-top: 64px;\n  }\n}\n\n#organisation .infographics .infographic_row_title {\n      margin: 0 0 64px;\n}\n\n@media screen and (max-width: 1024px) {\n\n  #organisation .infographics .infographic_row_title {\n    margin: 0 0 32px;\n  }\n}\n\n#organisation .infographics .infographic_row {\n      margin-bottom: 80px;\n      display: grid;\n      grid-gap: 80px 16px;\n      gap: 80px 16px;\n      grid-auto-rows: 1fr;\n      grid-template-columns: 1fr 1fr 1fr;\n}\n\n#organisation .infographics .infographic_row:last-child {\n  margin-bottom: 0;\n}\n\n@media screen and (max-width: 1024px) {\n\n  #organisation .infographics .infographic_row {\n    grid-template-columns: 1fr 1fr;\n    gap: 16px 16px;\n    margin-bottom: 64px;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  #organisation .infographics .infographic_row {\n    grid-template-columns: 1fr;\n  }\n}\n\n#organisation .infographics .infographic_row .icon {\n        background: #FBECEC;\n        text-align: center;\n        border-radius: 8px;\n        padding: 60px 15px 64px;\n}\n\n#organisation .infographics .infographic_row .icon .image {\n          height: 180px;\n        }\n\n@media screen and (max-width: 1280px) {\n\n  #organisation .infographics .infographic_row .icon .image {\n    height: 120px;\n  }\n}\n\n#organisation .infographics .infographic_row .icon .image img {\n            height: 100%;\n            width: auto;\n}\n\n#organisation .infographics .infographic_row .icon .content-wrapper p {\n            margin: 0;\n          }\n\n@media screen and (max-width: 1280px) {\n\n  #organisation .infographics .infographic_row .icon .content-wrapper p {\n    font-size: 14px;\n  }\n}\n\n#organisation .location-map {\n    padding-top: 120px;\n}\n\n@media screen and (max-width: 640px) {\n\n  #organisation .location-map {\n    padding-top: 64px;\n  }\n}\n\n#organisation .location-map .map-title h3 {\n        margin: 0 0 80px;\n      }\n\n@media screen and (max-width: 1024px) {\n\n  #organisation .location-map .map-title h3 {\n    margin: 0 0 32px;\n  }\n}\n\n#organisation .location-map .map-wrapper {\n      display: grid;\n      grid-gap: 0 160px;\n      gap: 0 160px;\n      grid-auto-rows: auto;\n      grid-template-columns: 1fr 1fr;\n      padding: 75px 100px;\n      background: #F1F5F6;\n}\n\n@media screen and (max-width: 1536px) {\n\n  #organisation .location-map .map-wrapper {\n    padding: 50px 75px;\n    gap: 0 100px;\n  }\n}\n\n@media screen and (max-width: 1280px) {\n\n  #organisation .location-map .map-wrapper {\n    padding: 25px 50px;\n    gap: 0 40px;\n  }\n}\n\n@media screen and (max-width: 1024px) {\n\n  #organisation .location-map .map-wrapper {\n    grid-template-columns: 1fr;\n  }\n}\n\n#organisation .location-map .map-wrapper .map-image-wrapper {\n        position: relative;\n}\n\n@media screen and (max-width: 1024px) {\n\n  #organisation .location-map .map-wrapper .map-image-wrapper {\n    max-width: 600px;\n    width: 100%;\n    margin: 0 auto 40px;\n  }\n}\n\n#organisation .location-map .map-wrapper .map-image-wrapper img {\n          width: 100%;\n          height: auto;\n          /*filter: drop-shadow(156px 123px 79px rgba(0, 0, 0, 0.01)) \n          drop-shadow(88px 69px 67px rgba(0, 0, 0, 0.05)) \n          drop-shadow(39px 31px 50px rgba(0, 0, 0, 0.09)) \n          drop-shadow(10px 8px 27px rgba(0, 0, 0, 0.1)) \n          drop-shadow(0px 0px 0px rgba(0, 0, 0, 0.1));*/\n          border-radius: 1000px;\n}\n\n#organisation .location-map .map-wrapper .map-image-wrapper .location-icon {\n          position: absolute;\n          background: #87ABB6;\n          /*backdrop-filter: blur(4px);*/\n          border-radius: 100px;\n          color: #042C38;\n          font-style: normal;\n          font-weight: 700;\n          font-size: 12px;\n          line-height: 140%;\n          display: -webkit-box;\n          display: -ms-flexbox;\n          display: flex;\n          align-items: center;\n          justify-content: center;\n          /*border-top: 0.5px solid #fff;*/\n          transform: scale(1);\n          transition: all 0.3s ease;\n          cursor: pointer;\n\n          width: 28px;\n          height: 28px;\n          margin-top: -14px;\n          margin-left: -14px;\n}\n\n#organisation .location-map .map-wrapper .map-image-wrapper .location-icon:hover,\n          #organisation .location-map .map-wrapper .map-image-wrapper .location-icon.active {\n  background: #D53737;\n  color: #FFF;\n          transform: scale(1.5);\n}\n\n#organisation .location-map .location-list .location-name {\n        display: -webkit-box;\n        display: -ms-flexbox;\n        display: flex;\n        margin-bottom: 8px;\n        cursor: pointer;\n      }\n\n#organisation .location-map .location-list .location-name .number {\n          width: 56px;\n          height: 65px;\n          display: -webkit-box;\n          display: -ms-flexbox;\n          display: flex;\n          align-items: center;\n          justify-content: center;\n          border: 1px solid #E3EAEC;\n          border-radius: 8px;\n          flex-grow: 0;\n          flex-shrink: 0;\n          font-weight: 400;\n          font-size: 14px;\n          line-height: 140%;\n          transition: all 0.3s ease;\n\n        }\n\n@media screen and (max-width: 640px) {\n\n  #organisation .location-map .location-list .location-name .number {\n    height: auto;\n    padding: 10px 0px 10px 0px;\n  }\n}\n\n#organisation .location-map .location-list .location-name .name {\n          position: relative;\n          height: 65px;\n          min-width: calc(100% - 56px);\n          display: -webkit-box;\n          display: -ms-flexbox;\n          display: flex;\n          align-items: center;\n          justify-content: flex-start;\n          border: 1px solid #E3EAEC;\n          border-radius: 8px;\n          padding: 0 40px 0 24px;\n          font-weight: 400;\n          font-size: 14px;\n          line-height: 140%;\n          transition: all 0.3s ease;\n}\n\n@media screen and (max-width: 640px) {\n\n  #organisation .location-map .location-list .location-name .name {\n    height: auto;\n    padding: 10px 40px 10px 24px;\n  }\n}\n\n#organisation .location-map .location-list .location-name .name svg {\n            opacity: 0;\n            visibility: hidden;\n            transition: all 0.3s ease;\n            position: absolute;\n            top: 50%;\n            margin-top: -12px;\n            right: 15px;\n}\n\n#organisation .location-map .location-list .location-name:hover .number, #organisation .location-map .location-list .location-name.active .number {\n            border: 1px solid #D53737;\n}\n\n#organisation .location-map .location-list .location-name:hover .name, #organisation .location-map .location-list .location-name.active .name {\n            border: 1px solid #D53737;\n}\n\n#organisation .location-map .location-list .location-name:hover .name svg, #organisation .location-map .location-list .location-name.active .name svg {\n              opacity: 1;\n              visibility: visible;\n            }\n\n#organisation .structure {\n    background: #042C38;\n    border-radius: 8px;\n    padding: 130px 64px;\n    margin-top: 120px;\n}\n\n@media screen and (max-width: 1024px) {\n\n  #organisation .structure {\n    padding: 80px 50px;\n    margin-top: 80px;\n  }\n}\n\n@media screen and (max-width: 768px) {\n\n  #organisation .structure {\n    padding: 60px 15px;\n    margin-top: 60px;\n  }\n}\n\n#organisation .structure p,#organisation .structure li,#organisation .structure h1,#organisation .structure h2,#organisation .structure h3,#organisation .structure h4,#organisation .structure h5,#organisation .structure h6 {\n      color: #FFF;\n}\n\n#organisation .structure .diagram {\n      padding-top: 150px;\n      display: -webkit-box;\n      display: -ms-flexbox;\n      display: flex;\n      flex-direction: column;\n      gap: 80px 0;\n}\n\n@media screen and (max-width: 1024px) {\n\n  #organisation .structure .diagram {\n    gap: 40px;\n  }\n}\n\n@media screen and (max-width: 1024px) {\n\n  #organisation .structure .diagram {\n    padding-top: 80px;\n  }\n}\n\n@media screen and (max-width: 768px) {\n\n  #organisation .structure .diagram {\n    padding-top: 60px;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  #organisation .structure .diagram {\n    gap: 26.66667px;\n  }\n}\n\n@media screen and (max-width: 400px) {\n\n  #organisation .structure .diagram {\n    gap: 20px;\n  }\n}\n\n#organisation .structure .diagram-title {\n        margin: 0;\n        text-transform: uppercase;\n        font-size: 18px;\n        display: inline-block;\n        z-index: 2;\n        position: relative;\n        color: #FFF;\n}\n\n#organisation .structure .diagram-title a {\n          color: #FFF;\n        }\n\n@media screen and (max-width: 1024px) {\n\n  #organisation .structure .diagram-title {\n    font-size: 16px;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  #organisation .structure .diagram-title {\n    font-size: 14px;\n  }\n}\n\n@media screen and (max-width: 400px) {\n\n  #organisation .structure .diagram-title {\n    font-size: 9px;\n  }\n}\n\n#organisation .structure .diagram-column {\n        display: -webkit-box;\n        display: -ms-flexbox;\n        display: flex;\n        flex-direction: column;\n        gap: 40px;\n}\n\n@media screen and (max-width: 1024px) {\n\n  #organisation .structure .diagram-column {\n    gap: 20px;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  #organisation .structure .diagram-column {\n    gap: 16px;\n  }\n}\n\n@media screen and (max-width: 400px) {\n\n  #organisation .structure .diagram-column {\n    gap: 13.33333px;\n  }\n}\n\n#organisation .structure .diagram-row {\n        display: -webkit-box;\n        display: -ms-flexbox;\n        display: flex;\n        flex-direction: row;\n        gap: 0 80px;\n        justify-content: center;\n        align-items: center;\n}\n\n@media screen and (max-width: 1024px) {\n\n  #organisation .structure .diagram-row {\n    gap: 40px;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  #organisation .structure .diagram-row {\n    gap: 26.66667px;\n  }\n}\n\n@media screen and (max-width: 400px) {\n\n  #organisation .structure .diagram-row {\n    gap: 20px;\n  }\n}\n\n#organisation .structure .diagram-row-small {\n          display: -webkit-box;\n          display: -ms-flexbox;\n          display: flex;\n          flex-direction: row;\n          gap: 20px 20px;\n          justify-content: center;\n          align-items: center;\n}\n\n@media screen and (max-width: 1280px) {\n\n  #organisation .structure .diagram-row-small {\n            flex-wrap: wrap;\n  }\n}\n\n@media screen and (max-width: 1024px) {\n\n  #organisation .structure .diagram-row-small {\n    gap: 16px 16px;\n  }\n}\n\n#organisation .structure .diagram-block {\n        display: -webkit-box;\n        display: -ms-flexbox;\n        display: flex;\n        justify-content: center;\n        align-items: center;\n        text-align: center;\n        border: 1px solid #47656e;\n        background: #042C38;\n        border-radius: 10px;\n        padding: 15px;\n        height: 77px;\n        position: relative;\n        transition: all 0.3s ease;\n        flex-grow: 1;\n        flex: 1;\n}\n\n@media screen and (max-width: 1024px) {\n\n  #organisation .structure .diagram-block {\n    height: 90px;\n  }\n}\n\n@media screen and (max-width: 400px) {\n\n  #organisation .structure .diagram-block {\n    padding: 8px;\n  }\n}\n\n#organisation .structure .diagram-block-large {\n          display: -webkit-box;\n          display: -ms-flexbox;\n          display: flex;\n          justify-content: center;\n          align-items: center;\n          text-align: center;\n          padding: 15px;\n          border: 1px solid #47656e;\n          background: #042C38;\n          border-radius: 10px;\n          height: 270px;\n          position: relative;\n          flex-grow: 1;\n          flex: 1;\n}\n\n@media screen and (max-width: 1280px) {\n\n  #organisation .structure .diagram-block-large {\n            flex-grow: 0;\n    min-width: 166px;\n  }\n}\n\n@media screen and (max-width: 1024px) {\n\n  #organisation .structure .diagram-block-large {\n    height: 230px;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  #organisation .structure .diagram-block-large {\n    min-width: 130px;\n    padding: 10px;\n    height: 210px;\n  }\n}\n\n@media screen and (max-width: 400px) {\n\n  #organisation .structure .diagram-block-large {\n    min-width: 100px;\n    padding: 8px;\n    height: 90px;\n  }\n}\n\n#organisation .structure .diagram a.diagram-block:hover {\n  z-index: 5;\n  background: #47656e;\n}\n\n#organisation .structure .diagram-dot {\n        position: absolute;\n        width: 16px;\n        height: 16px;\n        background: #042C38;\n        border-radius: 90px;\n        z-index: 5;\n}\n\n@media screen and (max-width: 400px) {\n\n  #organisation .structure .diagram-dot {\n    width: 8px;\n    height: 8px;\n  }\n}\n\n#organisation .structure .diagram-dot:before {\n  content: \"\";\n  position: absolute;\n  top: 4px;\n  left: 4px;\n  width: 8px;\n  height: 8px;\n  background: #47656e;\n  border-radius: 90px;\n}\n\n@media screen and (max-width: 400px) {\n\n  #organisation .structure .diagram-dot:before {\n    top: 2px;\n    left: 2px;\n    width: 4px;\n    height: 4px;\n  }\n}\n\n#organisation .structure .diagram-dot-top {\n          top: -8px;\n          left: 50%;\n          margin-left: -8px;\n}\n\n@media screen and (max-width: 400px) {\n\n  #organisation .structure .diagram-dot-top {\n    top: -4px;\n    margin-left: -4px;\n  }\n}\n\n#organisation .structure .diagram-dot-left {\n          left: -8px;\n          top: 50%;\n          margin-top: -8px;\n}\n\n@media screen and (max-width: 400px) {\n\n  #organisation .structure .diagram-dot-left {\n    left: -4px;\n    margin-top: -4px;\n  }\n}\n\n#organisation .structure .diagram-dot-right {\n          right: -8px;\n          top: 50%;\n          margin-top: -8px;\n}\n\n@media screen and (max-width: 400px) {\n\n  #organisation .structure .diagram-dot-right {\n    right: -4px;\n    margin-top: -4px;\n  }\n}\n\n#organisation .structure .diagram-dot-bottom {\n          bottom: -8px;\n          left: 50%;\n          margin-left: -8px;\n}\n\n@media screen and (max-width: 400px) {\n\n  #organisation .structure .diagram-dot-bottom {\n    bottom: -4px;\n    margin-left: -4px;\n  }\n}\n\n#organisation .structure .diagram-link {\n        position: absolute;\n        background: #47656e;\n}\n\n#organisation .structure .diagram-link-top {\n          height: 120px;\n          top: -120px;\n          width: 1px;\n          left: 50%;\n        }\n\n@media screen and (max-width: 1024px) {\n\n  #organisation .structure .diagram-link-top {\n    height: 60px;\n    top: -60px;\n    height: 85px;\n    top: -85px;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  #organisation .structure .diagram-link-top {\n    height: 40px;\n    top: -40px;\n    height: 70px;\n    top: -70px;\n  }\n}\n\n@media screen and (max-width: 400px) {\n\n  #organisation .structure .diagram-link-top {\n    height: 30px;\n    top: -30px;\n  }\n}\n\n#organisation .structure .diagram-link-left {\n          width: 80px;\n          left: -80px;\n          height: 1px;\n          top: 50%;\n}\n\n@media screen and (max-width: 1024px) {\n\n  #organisation .structure .diagram-link-left {\n    width: 40px;\n    left: -40px;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  #organisation .structure .diagram-link-left {\n    width: 26.66667px;\n    left: -26.66667px;\n  }\n}\n\n@media screen and (max-width: 400px) {\n\n  #organisation .structure .diagram-link-left {\n    width: 20px;\n    left: -20px;\n  }\n}\n\n#organisation .structure .diagram-link-right {\n          width: 80px;\n          height: 1px;\n          right: -80px;\n          top: 50%;\n}\n\n@media screen and (max-width: 1024px) {\n\n  #organisation .structure .diagram-link-right {\n    width: 40px;\n    right: -40px;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  #organisation .structure .diagram-link-right {\n    width: 26.66667px;\n    right: -26.66667px;\n  }\n}\n\n@media screen and (max-width: 400px) {\n\n  #organisation .structure .diagram-link-right {\n    width: 20px;\n    right: -20px;\n  }\n}\n\n#organisation .structure .diagram-link-bottom {\n          height: 80px;\n          width: 1px;\n          bottom: -80px;\n          left: 50%;\n}\n\n@media screen and (max-width: 1024px) {\n\n  #organisation .structure .diagram-link-bottom {\n    height: 40px;\n    bottom: -40px;\n  }\n}\n\n@media screen and (max-width: 640px) {\n\n  #organisation .structure .diagram-link-bottom {\n    height: 26.66667px;\n    bottom: -26.66667px;\n  }\n}\n\n@media screen and (max-width: 400px) {\n\n  #organisation .structure .diagram-link-bottom {\n    height: 20px;\n    bottom: -20px;\n  }\n}\n\n#organisation .structure .diagram-group {\n        display: -webkit-box;\n        display: -ms-flexbox;\n        display: flex;\n        justify-content: center;\n        align-items: center;\n        width: 100%;\n        text-align: center;\n        border: 1px solid #47656e;\n        border-bottom: 0;\n        background: #042C38;\n        border-radius: 10px;\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0;\n        height: 40px;\n        position: relative;\n}\n\n#organisation .structure .diagram-label {\n        position: relative;\n        text-align: center;\n        width: 100%;\n}\n\n#organisation .structure .diagram-label .diagram-title {\n          padding: 15px 45px;\n          background: #042C38;\n        }\n\n#organisation .structure .diagram-label::before {\n  content: \"\";\n  width: 100%;\n  position: absolute;\n  left: 0;\n  height: 1px;\n  top: 50%;\n  display: block;\n  background: #47656e;\n}\n\n#organisation .partners .partner {\n      margin-top: 100px;\n      display: -webkit-box;\n      display: -ms-flexbox;\n      display: flex;\n      align-items: flex-start;\n      gap: 0 50px;\n    }\n\n@media screen and (max-width: 1024px) {\n\n  #organisation .partners .partner {\n    display: block;\n  }\n}\n\n#organisation .partners .partner .logo_wrapper {\n        flex-shrink: 0;\n        flex-grow: 0;\n        width: 382px;\n        height: auto;\n        padding: 80px;\n        min-height: 350px;\n        border: 1px solid #E3EAEC;\n        display: -webkit-box;\n        display: -ms-flexbox;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        border-radius: 8px;\n        background: #FFF;\n}\n\n@media screen and (max-width: 1280px) {\n\n  #organisation .partners .partner .logo_wrapper {\n    width: 300px;\n    min-height: 280px;\n    padding: 60px;\n  }\n}\n\n@media screen and (max-width: 1024px) {\n\n  #organisation .partners .partner .logo_wrapper {\n    margin-bottom: 40px;\n  }\n}\n\n#organisation .partners .partner .logo_wrapper img {\n          display: block;\n          width: 100%;\n}\n\n#organisation .partners .partner .content_wrapper .title_wrapper {\n          margin-bottom: 40px;\n        }\n\n#organisation .partners .partner .content_wrapper .title_wrapper .s1 {\n            margin: 0 0 5px;\n          }\n\n#organisation .partners .partner .content_wrapper .title_wrapper p {\n            margin: 0; \n            font-weight: bold;\n          }\n\n#organisation .partners .partner .content_wrapper .title_wrapper a {\n            font-weight: bold;\n            color: #042C38;\n            border-bottom: 2px solid #042C38;\n            transition: all 0.3s ease\n          }\n\n#organisation .partners .partner .content_wrapper .title_wrapper a:hover {\n  border-bottom: 2px solid transparent;\n}\n\n.user-navigation .dropdown-navigation {\n    top: 81px;\n  }\n\n.dropdown-navigation .um .um-misc-with-img {\n      display: none;\n    }\n\n.dropdown-navigation .um .um-misc-ul {\n      margin-top: 4px;\n      overflow: hidden;\n      background: #FFF;\n      border-radius: 8px;\n      list-style: none;\n      width: 250px;\n      padding: 0;\n    }\n\n.dropdown-navigation .um li a {\n\n        padding: 18px 24px;\n        display: block;\n        transition: all 0.3s ease;\n        position: relative;\n\n        transition: all 0.3s ease;\n        margin: 0;\n        color: #042C38;\n        display: block;\n        font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n        font-size: 16px;\n        font-style: normal;\n        font-weight: bold;\n        line-height: 120%\n      }\n\n.dropdown-navigation .um li a:before {\n  content: \"\";\n  position: absolute;\n  bottom: 0;\n  left: 24;\n  width: calc(100% - 48px);\n  height: 1px;\n  background: #E3EAEC;\n  opacity: 1;\n  transition: all 0.3s ease;\n}\n\n.dropdown-navigation .um li a:hover {\n  background: #D53737;\n  color: #FFF;\n}\n\n.dropdown-navigation .um li a:hover:before {\n  opacity: 0;\n}\n\n#login-popup .um {\n    max-width: none !important;\n    margin: 0 !important;\n  }\n\n#login-popup .um-misc-with-img {\n      display: none;\n    }\n\n#login-popup .um-misc-ul {\n      list-style: none;\n      padding: 0;\n      margin: 0;\n    }\n\n#login-popup .um-misc-ul li a {\n          font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n          font-weight: bold;\n          color: #081C24;\n          border-bottom: 1px solid #CFCFCF;\n          text-align: center;\n          display: block;\n          padding: 10px;\n          transition: all 0.3s ease\n        }\n\n#login-popup .um-misc-ul li a:hover {\n  background: #D53737;\n  color: #FFF;\n}\n\n#login-popup .um-misc-ul li:last-child a {\n            border-bottom: 0;\n}\n\n#login-popup .um-button {\n      color: #FFF;\n      background: #D53737;\n      font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n      font-style: normal;\n      font-weight: 700;\n      font-size: 16px;\n      line-height: 140%;\n      border: 0;\n      display: block;\n      padding: 15px;\n      border-radius: 8px;\n      width: 100% !important;\n      cursor: pointer;\n      transition: all 0.3s ease\n    }\n\n#login-popup .um-button:hover {\n  background: #951414;\n}\n\n#auth-page .um {\n    max-width: none;\n    color: #081C24;\n  }\n\n#auth-page .um-form-field {\n        background: transparent;\n        border: 0;\n        border-bottom: 1px solid #387E97;\n        font-style: normal;\n        font-weight: 700;\n        font-size: 16px;\n        line-height: 120%;\n        color: #042C38;\n        padding: 15px 0\n      }\n\n#auth-page .um-form-field:focus,#auth-page .um-form-field.focus-visible {\n        box-shadow: none;\n  outline: none;\n}\n\n#auth-page .um-form-field:focus,#auth-page .um-form-field:focus-visible {\n        box-shadow: none;\n  outline: none;\n}\n\n#auth-page .um-button {\n      color: #FFF;\n      background: #D53737;\n      font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n      font-style: normal;\n      font-weight: 700;\n      font-size: 16px;\n      line-height: 140%;\n      border: 0;\n      display: block;\n      padding: 15px;\n      border-radius: 8px;\n      width: 100% !important;\n      cursor: pointer;\n      transition: all 0.3s ease\n    }\n\n#auth-page .um-button:hover {\n  background: #951414;\n}\n\n#auth-page .um-field-label {\n      color: #081C24;\n    }\n\n#auth-page .um-link-alt {\n      text-align: right;\n    }\n\n#auth-page .um-account .um-account-meta {\n        display: none;\n      }\n\n#auth-page .um-links {\n      display: -webkit-box;\n      display: -ms-flexbox;\n      display: flex;\n      align-items: center;\n      justify-content: flex-end;\n      list-style: none;\n    }\n\n#auth-page .um-links a {\n        font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n        font-style: normal;\n        font-weight: 400;\n        font-size: 14px;\n        line-height: 140%;\n        color: #042C38\n      }\n\n#auth-page .um-links a:hover {\n  text-decoration: underline;\n}\n\n#auth-page .um .um-account-main div.um-account-heading {\n      color: #081C24;\n    }\n\n#auth-page .um .um-form input:-webkit-autofill {\n      color: #081C24;\n    }\n\n#auth-page .um .um-form input:autofill {\n      color: #081C24;\n    }\n\n#auth-page .um .um-account-side {\n      display: none;\n    }\n\n#auth-page .um .um-account-nav {\n      display: none;\n    }\n\n#auth-page .um .um-account-tab {\n      display: block;\n      margin-bottom: 60px;\n    }\n\n#auth-page .um .um-account-main {\n      width: 100%;\n      max-width: none;\n    }", "",{"version":3,"sources":["webpack://./node_modules/normalize.css/normalize.css","webpack://./assets/css/abstract/variables.css","webpack://./assets/css/abstract/mxin.css","webpack://./assets/css/main.css","webpack://./node_modules/@glidejs/glide/src/assets/sass/glide.core.scss","webpack://./node_modules/@glidejs/glide/dist/css/glide.core.css","webpack://./node_modules/@glidejs/glide/src/assets/sass/glide.theme.scss","webpack://./node_modules/@glidejs/glide/dist/css/glide.theme.css","webpack://./node_modules/choices.js/public/assets/styles/choices.min.css","webpack://./assets/css/layout/body.css","webpack://./assets/css/layout/container.css","webpack://./assets/css/layout/sort-wrapper.css","webpack://./assets/css/layout/default-content-area.css","webpack://./assets/css/layout/single-content-area.css","webpack://./assets/css/layout/single-content-area-v2.css","webpack://./assets/css/layout/single-content-area-v3.css","webpack://./assets/css/typography/fonts.css","webpack://./assets/css/typography/styles.css","webpack://./assets/css/detail/single-detail.css","webpack://./assets/css/detail/free-input.css","webpack://./assets/css/components/global/header.css","webpack://./assets/css/components/global/header-mobile.css","webpack://./assets/css/components/global/dropdown-navigation.css","webpack://./assets/css/components/global/dropdown-navigation-detailed.css","webpack://./assets/css/components/global/footer.css","webpack://./assets/css/components/hero-slider.css","webpack://./assets/css/components/notifications.css","webpack://./assets/css/components/cards/notification-card.css","<no source>","webpack://./assets/css/components/gallery.css","webpack://./assets/css/components/recent-news.css","webpack://./assets/css/components/cards/news-cards.css","webpack://./assets/css/components/upcoming-events.css","webpack://./assets/css/components/cards/events-cards.css","webpack://./assets/css/components/introduction.css","webpack://./assets/css/components/search-navigation.css","webpack://./assets/css/components/sitemap.css","webpack://./assets/css/components/cards/funding-v1.css","webpack://./assets/css/components/cards/funding-v2.css","webpack://./assets/css/components/cards/projects-v1.css","webpack://./assets/css/components/cards/projects-v2.css","webpack://./assets/css/components/cards/our-scientists-v1.css","webpack://./assets/css/components/cards/news-v1.css","webpack://./assets/css/components/cards/publications-v1.css","webpack://./assets/css/components/cards/publications-v2.css","webpack://./assets/css/components/cards/forms-v1.css","webpack://./assets/css/components/cards/news-card-small.css","webpack://./assets/css/components/cards/team-v1.css","webpack://./assets/css/components/cards/events-v1.css","webpack://./assets/css/components/cards/media-card.css","webpack://./assets/css/components/cards/gallery-card.css","webpack://./assets/css/components/cards/employment-v1.css","webpack://./assets/css/components/global/page-title.css","webpack://./assets/css/components/global/page-sub-title.css","webpack://./assets/css/components/global/menu-style-1.css","webpack://./assets/css/components/global/filter-form.css","webpack://./assets/css/components/global/breadcrumb.css","webpack://./assets/css/components/global/popup.css","webpack://./assets/css/components/submit-news.css","webpack://./assets/css/components/submit-news-v2.css","webpack://./assets/css/components/submit-news-small-v2.css","webpack://./assets/css/components/related_news.css","webpack://./assets/css/components/related_projects.css","webpack://./assets/css/elements/image-wrapper.css","webpack://./assets/css/elements/buttons.css","webpack://./assets/css/elements/missing-image.css","webpack://./assets/css/elements/animated-circle.css","webpack://./assets/css/elements/animated-circle-2.css","webpack://./assets/css/elements/animated-circle-3.css","webpack://./assets/css/elements/animated-circle-4.css","webpack://./assets/css/elements/animated-circle-5.css","webpack://./assets/css/elements/animated-oval.css","webpack://./assets/css/elements/z-index.css","webpack://./assets/css/elements/page_not_found.css","webpack://./assets/css/elements/form.css","webpack://./assets/css/elements/pagination-load-more.css","webpack://./assets/css/elements/pagination-numbers.css","webpack://./assets/css/elements/wordpress-override.css","webpack://./assets/css/elements/special_underline.css","webpack://./assets/css/elements/login-popup.css","webpack://./assets/css/pages/page-template-page-home.css","webpack://./assets/css/pages/funding.css","webpack://./assets/css/pages/stories-of-change.css","webpack://./assets/css/pages/FAQ.css","webpack://./assets/css/pages/contact.css","webpack://./assets/css/pages/auth-page.css","webpack://./assets/css/pages/employment.css","webpack://./assets/css/pages/organisation.css","webpack://./assets/css/components/plugins/ultimate_member.css"],"names":[],"mappings":"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","sourceRoot":""}]);
8843// Exports
8844/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
8845
8846
8847/***/ }),
8848
vendor: 2,585 bytes, lines 8849-8960
8849/***/ "./node_modules/css-loader/dist/runtime/api.js":
8850/*!*****************************************************!*\
8851  !*** ./node_modules/css-loader/dist/runtime/api.js ***!
8852  \*****************************************************/
8853/***/ ((module) => {
8854
8855"use strict";
8856
8857
8858/*
8859  MIT License http://www.opensource.org/licenses/mit-license.php
8860  Author Tobias Koppers @sokra
8861*/
8862module.exports = function (cssWithMappingToString) {
8863  var list = []; // return the list of modules as css string
8864
8865  list.toString = function toString() {
8866    return this.map(function (item) {
8867      var content = "";
8868      var needLayer = typeof item[5] !== "undefined";
8869
8870      if (item[4]) {
8871        content += "@supports (".concat(item[4], ") {");
8872      }
8873
8874      if (item[2]) {
8875        content += "@media ".concat(item[2], " {");
8876      }
8877
8878      if (needLayer) {
8879        content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {");
8880      }
8881
8882      content += cssWithMappingToString(item);
8883
8884      if (needLayer) {
8885        content += "}";
8886      }
8887
8888      if (item[2]) {
8889        content += "}";
8890      }
8891
8892      if (item[4]) {
8893        content += "}";
8894      }
8895
8896      return content;
8897    }).join("");
8898  }; // import a list of modules into the list
8899
8900
8901  list.i = function i(modules, media, dedupe, supports, layer) {
8902    if (typeof modules === "string") {
8903      modules = [[null, modules, undefined]];
8904    }
8905
8906    var alreadyImportedModules = {};
8907
8908    if (dedupe) {
8909      for (var k = 0; k < this.length; k++) {
8910        var id = this[k][0];
8911
8912        if (id != null) {
8913          alreadyImportedModules[id] = true;
8914        }
8915      }
8916    }
8917
8918    for (var _k = 0; _k < modules.length; _k++) {
8919      var item = [].concat(modules[_k]);
8920
8921      if (dedupe && alreadyImportedModules[item[0]]) {
8922        continue;
8923      }
8924
8925      if (typeof layer !== "undefined") {
8926        if (typeof item[5] === "undefined") {
8927          item[5] = layer;
8928        } else {
8929          item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}");
8930          item[5] = layer;
8931        }
8932      }
8933
8934      if (media) {
8935        if (!item[2]) {
8936          item[2] = media;
8937        } else {
8938          item[1] = "@media ".concat(item[2], " {").concat(item[1], "}");
8939          item[2] = media;
8940        }
8941      }
8942
8943      if (supports) {
8944        if (!item[4]) {
8945          item[4] = "".concat(supports);
8946        } else {
8947          item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}");
8948          item[4] = supports;
8949        }
8950      }
8951
8952      list.push(item);
8953    }
8954  };
8955
8956  return list;
8957};
8958
8959/***/ }),
8960
vendor: 877 bytes, lines 8961-8999
8961/***/ "./node_modules/css-loader/dist/runtime/getUrl.js":
8962/*!********************************************************!*\
8963  !*** ./node_modules/css-loader/dist/runtime/getUrl.js ***!
8964  \********************************************************/
8965/***/ ((module) => {
8966
8967"use strict";
8968
8969
8970module.exports = function (url, options) {
8971  if (!options) {
8972    options = {};
8973  }
8974
8975  if (!url) {
8976    return url;
8977  }
8978
8979  url = String(url.__esModule ? url.default : url); // If url is already wrapped in quotes, remove them
8980
8981  if (/^['"].*['"]$/.test(url)) {
8982    url = url.slice(1, -1);
8983  }
8984
8985  if (options.hash) {
8986    url += options.hash;
8987  } // Should url be wrapped?
8988  // See https://drafts.csswg.org/css-values-3/#urls
8989
8990
8991  if (/["'() \t\n]|(%20)/.test(url) || options.needQuotes) {
8992    return "\"".concat(url.replace(/"/g, '\\"').replace(/\n/g, "\\n"), "\"");
8993  }
8994
8995  return url;
8996};
8997
8998/***/ }),
8999
vendor: 983 bytes, lines 9000-9031
9000/***/ "./node_modules/css-loader/dist/runtime/sourceMaps.js":
9001/*!************************************************************!*\
9002  !*** ./node_modules/css-loader/dist/runtime/sourceMaps.js ***!
9003  \************************************************************/
9004/***/ ((module) => {
9005
9006"use strict";
9007
9008
9009module.exports = function (item) {
9010  var content = item[1];
9011  var cssMapping = item[3];
9012
9013  if (!cssMapping) {
9014    return content;
9015  }
9016
9017  if (typeof btoa === "function") {
9018    var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));
9019    var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64);
9020    var sourceMapping = "/*# ".concat(data, " */");
9021    var sourceURLs = cssMapping.sources.map(function (source) {
9022      return "/*# sourceURL=".concat(cssMapping.sourceRoot || "").concat(source, " */");
9023    });
9024    return [content].concat(sourceURLs).concat([sourceMapping]).join("\n");
9025  }
9026
9027  return [content].join("\n");
9028};
9029
9030/***/ }),
9031
vendor: 5,914 bytes, lines 9032-9086
9032/***/ "./assets/css/main.css":
9033/*!*****************************!*\
9034  !*** ./assets/css/main.css ***!
9035  \*****************************/
9036/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9037
9038"use strict";
9039__webpack_require__.r(__webpack_exports__);
9040/* harmony export */ __webpack_require__.d(__webpack_exports__, {
9041/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
9042/* harmony export */ });
9043/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
9044/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
9045/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js");
9046/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);
9047/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js");
9048/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);
9049/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js");
9050/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);
9051/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js");
9052/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);
9053/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js");
9054/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);
9055/* harmony import */ var _node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_main_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./main.css */ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./assets/css/main.css");
9056
9057      
9058      
9059      
9060      
9061      
9062      
9063      
9064      
9065      
9066
9067var options = {};
9068
9069options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());
9070options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());
9071
9072      options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head");
9073    
9074options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());
9075options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());
9076
9077var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_main_css__WEBPACK_IMPORTED_MODULE_6__["default"], options);
9078
9079
9080
9081
9082       /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_main_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_main_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_main_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined);
9083
9084
9085/***/ }),
9086
vendor: 2,859 bytes, lines 9087-9200
9087/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":
9088/*!****************************************************************************!*\
9089  !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***!
9090  \****************************************************************************/
9091/***/ ((module) => {
9092
9093"use strict";
9094
9095
9096var stylesInDOM = [];
9097
9098function getIndexByIdentifier(identifier) {
9099  var result = -1;
9100
9101  for (var i = 0; i < stylesInDOM.length; i++) {
9102    if (stylesInDOM[i].identifier === identifier) {
9103      result = i;
9104      break;
9105    }
9106  }
9107
9108  return result;
9109}
9110
9111function modulesToDom(list, options) {
9112  var idCountMap = {};
9113  var identifiers = [];
9114
9115  for (var i = 0; i < list.length; i++) {
9116    var item = list[i];
9117    var id = options.base ? item[0] + options.base : item[0];
9118    var count = idCountMap[id] || 0;
9119    var identifier = "".concat(id, " ").concat(count);
9120    idCountMap[id] = count + 1;
9121    var indexByIdentifier = getIndexByIdentifier(identifier);
9122    var obj = {
9123      css: item[1],
9124      media: item[2],
9125      sourceMap: item[3],
9126      supports: item[4],
9127      layer: item[5]
9128    };
9129
9130    if (indexByIdentifier !== -1) {
9131      stylesInDOM[indexByIdentifier].references++;
9132      stylesInDOM[indexByIdentifier].updater(obj);
9133    } else {
9134      var updater = addElementStyle(obj, options);
9135      options.byIndex = i;
9136      stylesInDOM.splice(i, 0, {
9137        identifier: identifier,
9138        updater: updater,
9139        references: 1
9140      });
9141    }
9142
9143    identifiers.push(identifier);
9144  }
9145
9146  return identifiers;
9147}
9148
9149function addElementStyle(obj, options) {
9150  var api = options.domAPI(options);
9151  api.update(obj);
9152
9153  var updater = function updater(newObj) {
9154    if (newObj) {
9155      if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {
9156        return;
9157      }
9158
9159      api.update(obj = newObj);
9160    } else {
9161      api.remove();
9162    }
9163  };
9164
9165  return updater;
9166}
9167
9168module.exports = function (list, options) {
9169  options = options || {};
9170  list = list || [];
9171  var lastIdentifiers = modulesToDom(list, options);
9172  return function update(newList) {
9173    newList = newList || [];
9174
9175    for (var i = 0; i < lastIdentifiers.length; i++) {
9176      var identifier = lastIdentifiers[i];
9177      var index = getIndexByIdentifier(identifier);
9178      stylesInDOM[index].references--;
9179    }
9180
9181    var newLastIdentifiers = modulesToDom(newList, options);
9182
9183    for (var _i = 0; _i < lastIdentifiers.length; _i++) {
9184      var _identifier = lastIdentifiers[_i];
9185
9186      var _index = getIndexByIdentifier(_identifier);
9187
9188      if (stylesInDOM[_index].references === 0) {
9189        stylesInDOM[_index].updater();
9190
9191        stylesInDOM.splice(_index, 1);
9192      }
9193    }
9194
9195    lastIdentifiers = newLastIdentifiers;
9196  };
9197};
9198
9199/***/ }),
9200
vendor: 1,332 bytes, lines 9201-9249
9201/***/ "./node_modules/style-loader/dist/runtime/insertBySelector.js":
9202/*!********************************************************************!*\
9203  !*** ./node_modules/style-loader/dist/runtime/insertBySelector.js ***!
9204  \********************************************************************/
9205/***/ ((module) => {
9206
9207"use strict";
9208
9209
9210var memo = {};
9211/* istanbul ignore next  */
9212
9213function getTarget(target) {
9214  if (typeof memo[target] === "undefined") {
9215    var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself
9216
9217    if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
9218      try {
9219        // This will throw an exception if access to iframe is blocked
9220        // due to cross-origin restrictions
9221        styleTarget = styleTarget.contentDocument.head;
9222      } catch (e) {
9223        // istanbul ignore next
9224        styleTarget = null;
9225      }
9226    }
9227
9228    memo[target] = styleTarget;
9229  }
9230
9231  return memo[target];
9232}
9233/* istanbul ignore next  */
9234
9235
9236function insertBySelector(insert, style) {
9237  var target = getTarget(insert);
9238
9239  if (!target) {
9240    throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
9241  }
9242
9243  target.appendChild(style);
9244}
9245
9246module.exports = insertBySelector;
9247
9248/***/ }),
9249
vendor: 621 bytes, lines 9250-9270
9250/***/ "./node_modules/style-loader/dist/runtime/insertStyleElement.js":
9251/*!**********************************************************************!*\
9252  !*** ./node_modules/style-loader/dist/runtime/insertStyleElement.js ***!
9253  \**********************************************************************/
9254/***/ ((module) => {
9255
9256"use strict";
9257
9258
9259/* istanbul ignore next  */
9260function insertStyleElement(options) {
9261  var element = document.createElement("style");
9262  options.setAttributes(element, options.attributes);
9263  options.insert(element, options.options);
9264  return element;
9265}
9266
9267module.exports = insertStyleElement;
9268
9269/***/ }),
9270
vendor: 697 bytes, lines 9271-9292
9271/***/ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js":
9272/*!**********************************************************************************!*\
9273  !*** ./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js ***!
9274  \**********************************************************************************/
9275/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
9276
9277"use strict";
9278
9279
9280/* istanbul ignore next  */
9281function setAttributesWithoutAttributes(styleElement) {
9282  var nonce =  true ? __webpack_require__.nc : 0;
9283
9284  if (nonce) {
9285    styleElement.setAttribute("nonce", nonce);
9286  }
9287}
9288
9289module.exports = setAttributesWithoutAttributes;
9290
9291/***/ }),
9292
vendor: 1,719 bytes, lines 9293-9372
9293/***/ "./node_modules/style-loader/dist/runtime/styleDomAPI.js":
9294/*!***************************************************************!*\
9295  !*** ./node_modules/style-loader/dist/runtime/styleDomAPI.js ***!
9296  \***************************************************************/
9297/***/ ((module) => {
9298
9299"use strict";
9300
9301
9302/* istanbul ignore next  */
9303function apply(styleElement, options, obj) {
9304  var css = "";
9305
9306  if (obj.supports) {
9307    css += "@supports (".concat(obj.supports, ") {");
9308  }
9309
9310  if (obj.media) {
9311    css += "@media ".concat(obj.media, " {");
9312  }
9313
9314  var needLayer = typeof obj.layer !== "undefined";
9315
9316  if (needLayer) {
9317    css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {");
9318  }
9319
9320  css += obj.css;
9321
9322  if (needLayer) {
9323    css += "}";
9324  }
9325
9326  if (obj.media) {
9327    css += "}";
9328  }
9329
9330  if (obj.supports) {
9331    css += "}";
9332  }
9333
9334  var sourceMap = obj.sourceMap;
9335
9336  if (sourceMap && typeof btoa !== "undefined") {
9337    css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
9338  } // For old IE
9339
9340  /* istanbul ignore if  */
9341
9342
9343  options.styleTagTransform(css, styleElement, options.options);
9344}
9345
9346function removeStyleElement(styleElement) {
9347  // istanbul ignore if
9348  if (styleElement.parentNode === null) {
9349    return false;
9350  }
9351
9352  styleElement.parentNode.removeChild(styleElement);
9353}
9354/* istanbul ignore next  */
9355
9356
9357function domAPI(options) {
9358  var styleElement = options.insertStyleElement(options);
9359  return {
9360    update: function update(obj) {
9361      apply(styleElement, options, obj);
9362    },
9363    remove: function remove() {
9364      removeStyleElement(styleElement);
9365    }
9366  };
9367}
9368
9369module.exports = domAPI;
9370
9371/***/ }),
9372
vendor: 713 bytes, lines 9373-9398
9373/***/ "./node_modules/style-loader/dist/runtime/styleTagTransform.js":
9374/*!*********************************************************************!*\
9375  !*** ./node_modules/style-loader/dist/runtime/styleTagTransform.js ***!
9376  \*********************************************************************/
9377/***/ ((module) => {
9378
9379"use strict";
9380
9381
9382/* istanbul ignore next  */
9383function styleTagTransform(css, styleElement) {
9384  if (styleElement.styleSheet) {
9385    styleElement.styleSheet.cssText = css;
9386  } else {
9387    while (styleElement.firstChild) {
9388      styleElement.removeChild(styleElement.firstChild);
9389    }
9390
9391    styleElement.appendChild(document.createTextNode(css));
9392  }
9393}
9394
9395module.exports = styleTagTransform;
9396
9397/***/ }),
9398
vendor: 32,183 bytes, lines 9399-10454
9399/***/ "./node_modules/typo-js/typo.js":
9400/*!**************************************!*\
9401  !*** ./node_modules/typo-js/typo.js ***!
9402  \**************************************/
9403/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
9404
9405var __dirname = "/";
9406/* globals chrome: false */
9407/* globals __dirname: false */
9408/* globals require: false */
9409/* globals Buffer: false */
9410/* globals module: false */
9411
9412/**
9413 * Typo is a JavaScript implementation of a spellchecker using hunspell-style 
9414 * dictionaries.
9415 */
9416
9417var Typo;
9418
9419(function () {
9420"use strict";
9421
9422/**
9423 * Typo constructor.
9424 *
9425 * @param {String} [dictionary] The locale code of the dictionary being used. e.g.,
9426 *                              "en_US". This is only used to auto-load dictionaries.
9427 * @param {String} [affData]    The data from the dictionary's .aff file. If omitted
9428 *                              and Typo.js is being used in a Chrome extension, the .aff
9429 *                              file will be loaded automatically from
9430 *                              lib/typo/dictionaries/[dictionary]/[dictionary].aff
9431 *                              In other environments, it will be loaded from
9432 *                              [settings.dictionaryPath]/dictionaries/[dictionary]/[dictionary].aff
9433 * @param {String} [wordsData]  The data from the dictionary's .dic file. If omitted
9434 *                              and Typo.js is being used in a Chrome extension, the .dic
9435 *                              file will be loaded automatically from
9436 *                              lib/typo/dictionaries/[dictionary]/[dictionary].dic
9437 *                              In other environments, it will be loaded from
9438 *                              [settings.dictionaryPath]/dictionaries/[dictionary]/[dictionary].dic
9439 * @param {Object} [settings]   Constructor settings. Available properties are:
9440 *                              {String} [dictionaryPath]: path to load dictionary from in non-chrome
9441 *                              environment.
9442 *                              {Object} [flags]: flag information.
9443 *                              {Boolean} [asyncLoad]: If true, affData and wordsData will be loaded
9444 *                              asynchronously.
9445 *                              {Function} [loadedCallback]: Called when both affData and wordsData
9446 *                              have been loaded. Only used if asyncLoad is set to true. The parameter
9447 *                              is the instantiated Typo object.
9448 *
9449 * @returns {Typo} A Typo object.
9450 */
9451
9452Typo = function (dictionary, affData, wordsData, settings) {
9453	settings = settings || {};
9454
9455	this.dictionary = null;
9456	
9457	this.rules = {};
9458	this.dictionaryTable = {};
9459	
9460	this.compoundRules = [];
9461	this.compoundRuleCodes = {};
9462	
9463	this.replacementTable = [];
9464	
9465	this.flags = settings.flags || {}; 
9466	
9467	this.memoized = {};
9468
9469	this.loaded = false;
9470	
9471	var self = this;
9472	
9473	var path;
9474	
9475	// Loop-control variables.
9476	var i, j, _len, _jlen;
9477	
9478	if (dictionary) {
9479		self.dictionary = dictionary;
9480		
9481		// If the data is preloaded, just setup the Typo object.
9482		if (affData && wordsData) {
9483			setup();
9484		}
9485		// Loading data for Chrome extentions.
9486		else if (typeof window !== 'undefined' && 'chrome' in window && 'extension' in window.chrome && 'getURL' in window.chrome.extension) {
9487			if (settings.dictionaryPath) {
9488				path = settings.dictionaryPath;
9489			}
9490			else {
9491				path = "typo/dictionaries";
9492			}
9493			
9494			if (!affData) readDataFile(chrome.extension.getURL(path + "/" + dictionary + "/" + dictionary + ".aff"), setAffData);
9495			if (!wordsData) readDataFile(chrome.extension.getURL(path + "/" + dictionary + "/" + dictionary + ".dic"), setWordsData);
9496		}
9497		else {
9498			if (settings.dictionaryPath) {
9499				path = settings.dictionaryPath;
9500			}
9501			else if (true) {
9502				path = __dirname + '/dictionaries';
9503			}
9504			else {}
9505			
9506			if (!affData) readDataFile(path + "/" + dictionary + "/" + dictionary + ".aff", setAffData);
9507			if (!wordsData) readDataFile(path + "/" + dictionary + "/" + dictionary + ".dic", setWordsData);
9508		}
9509	}
9510	
9511	function readDataFile(url, setFunc) {
9512		var response = self._readFile(url, null, settings.asyncLoad);
9513		
9514		if (settings.asyncLoad) {
9515			response.then(function(data) {
9516				setFunc(data);
9517			});
9518		}
9519		else {
9520			setFunc(response);
9521		}
9522	}
9523
9524	function setAffData(data) {
9525		affData = data;
9526
9527		if (wordsData) {
9528			setup();
9529		}
9530	}
9531
9532	function setWordsData(data) {
9533		wordsData = data;
9534
9535		if (affData) {
9536			setup();
9537		}
9538	}
9539
9540	function setup() {
9541		self.rules = self._parseAFF(affData);
9542		
9543		// Save the rule codes that are used in compound rules.
9544		self.compoundRuleCodes = {};
9545		
9546		for (i = 0, _len = self.compoundRules.length; i < _len; i++) {
9547			var rule = self.compoundRules[i];
9548			
9549			for (j = 0, _jlen = rule.length; j < _jlen; j++) {
9550				self.compoundRuleCodes[rule[j]] = [];
9551			}
9552		}
9553		
9554		// If we add this ONLYINCOMPOUND flag to self.compoundRuleCodes, then _parseDIC
9555		// will do the work of saving the list of words that are compound-only.
9556		if ("ONLYINCOMPOUND" in self.flags) {
9557			self.compoundRuleCodes[self.flags.ONLYINCOMPOUND] = [];
9558		}
9559		
9560		self.dictionaryTable = self._parseDIC(wordsData);
9561		
9562		// Get rid of any codes from the compound rule codes that are never used 
9563		// (or that were special regex characters).  Not especially necessary... 
9564		for (i in self.compoundRuleCodes) {
9565			if (self.compoundRuleCodes[i].length === 0) {
9566				delete self.compoundRuleCodes[i];
9567			}
9568		}
9569		
9570		// Build the full regular expressions for each compound rule.
9571		// I have a feeling (but no confirmation yet) that this method of 
9572		// testing for compound words is probably slow.
9573		for (i = 0, _len = self.compoundRules.length; i < _len; i++) {
9574			var ruleText = self.compoundRules[i];
9575			
9576			var expressionText = "";
9577			
9578			for (j = 0, _jlen = ruleText.length; j < _jlen; j++) {
9579				var character = ruleText[j];
9580				
9581				if (character in self.compoundRuleCodes) {
9582					expressionText += "(" + self.compoundRuleCodes[character].join("|") + ")";
9583				}
9584				else {
9585					expressionText += character;
9586				}
9587			}
9588			
9589			self.compoundRules[i] = new RegExp(expressionText, "i");
9590		}
9591		
9592		self.loaded = true;
9593		
9594		if (settings.asyncLoad && settings.loadedCallback) {
9595			settings.loadedCallback(self);
9596		}
9597	}
9598	
9599	return this;
9600};
9601
9602Typo.prototype = {
9603	/**
9604	 * Loads a Typo instance from a hash of all of the Typo properties.
9605	 *
9606	 * @param object obj A hash of Typo properties, probably gotten from a JSON.parse(JSON.stringify(typo_instance)).
9607	 */
9608	
9609	load : function (obj) {
9610		for (var i in obj) {
9611			if (obj.hasOwnProperty(i)) {
9612				this[i] = obj[i];
9613			}
9614		}
9615		
9616		return this;
9617	},
9618	
9619	/**
9620	 * Read the contents of a file.
9621	 * 
9622	 * @param {String} path The path (relative) to the file.
9623	 * @param {String} [charset="ISO8859-1"] The expected charset of the file
9624	 * @param {Boolean} async If true, the file will be read asynchronously. For node.js this does nothing, all
9625	 *        files are read synchronously.
9626	 * @returns {String} The file data if async is false, otherwise a promise object. If running node.js, the data is
9627	 *          always returned.
9628	 */
9629	
9630	_readFile : function (path, charset, async) {
9631		charset = charset || "utf8";
9632		
9633		if (typeof XMLHttpRequest !== 'undefined') {
9634			var promise;
9635			var req = new XMLHttpRequest();
9636			req.open("GET", path, async);
9637			
9638			if (async) {
9639				promise = new Promise(function(resolve, reject) {
9640					req.onload = function() {
9641						if (req.status === 200) {
9642							resolve(req.responseText);
9643						}
9644						else {
9645							reject(req.statusText);
9646						}
9647					};
9648					
9649					req.onerror = function() {
9650						reject(req.statusText);
9651					}
9652				});
9653			}
9654		
9655			if (req.overrideMimeType)
9656				req.overrideMimeType("text/plain; charset=" + charset);
9657		
9658			req.send(null);
9659			
9660			return async ? promise : req.responseText;
9661		}
9662		else if (true) {
9663			// Node.js
9664			var fs = __webpack_require__(/*! fs */ "?b2fd");
9665			
9666			try {
9667				if (fs.existsSync(path)) {
9668					return fs.readFileSync(path, charset);
9669				}
9670				else {
9671					console.log("Path " + path + " does not exist.");
9672				}
9673			} catch (e) {
9674				console.log(e);
9675				return '';
9676			}
9677		}
9678	},
9679	
9680	/**
9681	 * Parse the rules out from a .aff file.
9682	 *
9683	 * @param {String} data The contents of the affix file.
9684	 * @returns object The rules from the file.
9685	 */
9686	
9687	_parseAFF : function (data) {
9688		var rules = {};
9689		
9690		var line, subline, numEntries, lineParts;
9691		var i, j, _len, _jlen;
9692		
9693		var lines = data.split(/\r?\n/);
9694		
9695		for (i = 0, _len = lines.length; i < _len; i++) {
9696			// Remove comment lines
9697			line = this._removeAffixComments(lines[i]);
9698			line = line.trim();
9699			
9700			if ( ! line ) {
9701				continue;
9702			}
9703			
9704			var definitionParts = line.split(/\s+/);
9705			
9706			var ruleType = definitionParts[0];
9707			
9708			if (ruleType == "PFX" || ruleType == "SFX") {
9709				var ruleCode = definitionParts[1];
9710				var combineable = definitionParts[2];
9711				numEntries = parseInt(definitionParts[3], 10);
9712				
9713				var entries = [];
9714				
9715				for (j = i + 1, _jlen = i + 1 + numEntries; j < _jlen; j++) {
9716					subline = lines[j];
9717					
9718					lineParts = subline.split(/\s+/);
9719					var charactersToRemove = lineParts[2];
9720					
9721					var additionParts = lineParts[3].split("/");
9722					
9723					var charactersToAdd = additionParts[0];
9724					if (charactersToAdd === "0") charactersToAdd = "";
9725					
9726					var continuationClasses = this.parseRuleCodes(additionParts[1]);
9727					
9728					var regexToMatch = lineParts[4];
9729					
9730					var entry = {};
9731					entry.add = charactersToAdd;
9732					
9733					if (continuationClasses.length > 0) entry.continuationClasses = continuationClasses;
9734					
9735					if (regexToMatch !== ".") {
9736						if (ruleType === "SFX") {
9737							entry.match = new RegExp(regexToMatch + "$");
9738						}
9739						else {
9740							entry.match = new RegExp("^" + regexToMatch);
9741						}
9742					}
9743					
9744					if (charactersToRemove != "0") {
9745						if (ruleType === "SFX") {
9746							entry.remove = new RegExp(charactersToRemove  + "$");
9747						}
9748						else {
9749							entry.remove = charactersToRemove;
9750						}
9751					}
9752					
9753					entries.push(entry);
9754				}
9755				
9756				rules[ruleCode] = { "type" : ruleType, "combineable" : (combineable == "Y"), "entries" : entries };
9757				
9758				i += numEntries;
9759			}
9760			else if (ruleType === "COMPOUNDRULE") {
9761				numEntries = parseInt(definitionParts[1], 10);
9762				
9763				for (j = i + 1, _jlen = i + 1 + numEntries; j < _jlen; j++) {
9764					line = lines[j];
9765					
9766					lineParts = line.split(/\s+/);
9767					this.compoundRules.push(lineParts[1]);
9768				}
9769				
9770				i += numEntries;
9771			}
9772			else if (ruleType === "REP") {
9773				lineParts = line.split(/\s+/);
9774				
9775				if (lineParts.length === 3) {
9776					this.replacementTable.push([ lineParts[1], lineParts[2] ]);
9777				}
9778			}
9779			else {
9780				// ONLYINCOMPOUND
9781				// COMPOUNDMIN
9782				// FLAG
9783				// KEEPCASE
9784				// NEEDAFFIX
9785				
9786				this.flags[ruleType] = definitionParts[1];
9787			}
9788		}
9789		
9790		return rules;
9791	},
9792	
9793	/**
9794	 * Removes comments.
9795	 *
9796	 * @param {String} data A line from an affix file.
9797	 * @return {String} The cleaned-up line.
9798	 */
9799	
9800	_removeAffixComments : function (line) {
9801		// This used to remove any string starting with '#' up to the end of the line,
9802		// but some COMPOUNDRULE definitions include '#' as part of the rule.
9803		// So, only remove lines that begin with a comment, optionally preceded by whitespace.
9804		if ( line.match( /^\s*#/, "" ) ) {
9805			return '';
9806		}
9807		
9808		return line;
9809	},
9810	
9811	/**
9812	 * Parses the words out from the .dic file.
9813	 *
9814	 * @param {String} data The data from the dictionary file.
9815	 * @returns object The lookup table containing all of the words and
9816	 *                 word forms from the dictionary.
9817	 */
9818	
9819	_parseDIC : function (data) {
9820		data = this._removeDicComments(data);
9821		
9822		var lines = data.split(/\r?\n/);
9823		var dictionaryTable = {};
9824		
9825		function addWord(word, rules) {
9826			// Some dictionaries will list the same word multiple times with different rule sets.
9827			if (!dictionaryTable.hasOwnProperty(word)) {
9828				dictionaryTable[word] = null;
9829			}
9830			
9831			if (rules.length > 0) {
9832				if (dictionaryTable[word] === null) {
9833					dictionaryTable[word] = [];
9834				}
9835
9836				dictionaryTable[word].push(rules);
9837			}
9838		}
9839		
9840		// The first line is the number of words in the dictionary.
9841		for (var i = 1, _len = lines.length; i < _len; i++) {
9842			var line = lines[i];
9843			
9844			if (!line) {
9845				// Ignore empty lines.
9846				continue;
9847			}
9848
9849			var parts = line.split("/", 2);
9850			
9851			var word = parts[0];
9852
9853			// Now for each affix rule, generate that form of the word.
9854			if (parts.length > 1) {
9855				var ruleCodesArray = this.parseRuleCodes(parts[1]);
9856				
9857				// Save the ruleCodes for compound word situations.
9858				if (!("NEEDAFFIX" in this.flags) || ruleCodesArray.indexOf(this.flags.NEEDAFFIX) == -1) {
9859					addWord(word, ruleCodesArray);
9860				}
9861				
9862				for (var j = 0, _jlen = ruleCodesArray.length; j < _jlen; j++) {
9863					var code = ruleCodesArray[j];
9864					
9865					var rule = this.rules[code];
9866					
9867					if (rule) {
9868						var newWords = this._applyRule(word, rule);
9869						
9870						for (var ii = 0, _iilen = newWords.length; ii < _iilen; ii++) {
9871							var newWord = newWords[ii];
9872							
9873							addWord(newWord, []);
9874							
9875							if (rule.combineable) {
9876								for (var k = j + 1; k < _jlen; k++) {
9877									var combineCode = ruleCodesArray[k];
9878									
9879									var combineRule = this.rules[combineCode];
9880									
9881									if (combineRule) {
9882										if (combineRule.combineable && (rule.type != combineRule.type)) {
9883											var otherNewWords = this._applyRule(newWord, combineRule);
9884											
9885											for (var iii = 0, _iiilen = otherNewWords.length; iii < _iiilen; iii++) {
9886												var otherNewWord = otherNewWords[iii];
9887												addWord(otherNewWord, []);
9888											}
9889										}
9890									}
9891								}
9892							}
9893						}
9894					}
9895					
9896					if (code in this.compoundRuleCodes) {
9897						this.compoundRuleCodes[code].push(word);
9898					}
9899				}
9900			}
9901			else {
9902				addWord(word.trim(), []);
9903			}
9904		}
9905		
9906		return dictionaryTable;
9907	},
9908	
9909	
9910	/**
9911	 * Removes comment lines and then cleans up blank lines and trailing whitespace.
9912	 *
9913	 * @param {String} data The data from a .dic file.
9914	 * @return {String} The cleaned-up data.
9915	 */
9916	
9917	_removeDicComments : function (data) {
9918		// I can't find any official documentation on it, but at least the de_DE
9919		// dictionary uses tab-indented lines as comments.
9920		
9921		// Remove comments
9922		data = data.replace(/^\t.*$/mg, "");
9923		
9924		return data;
9925	},
9926	
9927	parseRuleCodes : function (textCodes) {
9928		if (!textCodes) {
9929			return [];
9930		}
9931		else if (!("FLAG" in this.flags)) {
9932			// The flag symbols are single characters
9933			return textCodes.split("");
9934		}
9935		else if (this.flags.FLAG === "long") {
9936			// The flag symbols are two characters long.
9937			var flags = [];
9938			
9939			for (var i = 0, _len = textCodes.length; i < _len; i += 2) {
9940				flags.push(textCodes.substr(i, 2));
9941			}
9942			
9943			return flags;
9944		}
9945		else if (this.flags.FLAG === "num") {
9946			// The flag symbols are a CSV list of numbers.
9947			return textCodes.split(",");
9948		}
9949		else if (this.flags.FLAG === "UTF-8") {
9950			// The flags are single UTF-8 characters.
9951			// @see https://github.com/cfinke/Typo.js/issues/57
9952			return Array.from(textCodes);
9953		}
9954		else {
9955			// It's possible that this fallback case will not work for all FLAG values,
9956			// but I think it's more likely to work than not returning anything at all.
9957			return textCodes.split("");
9958		}
9959	},
9960	
9961	/**
9962	 * Applies an affix rule to a word.
9963	 *
9964	 * @param {String} word The base word.
9965	 * @param {Object} rule The affix rule.
9966	 * @returns {String[]} The new words generated by the rule.
9967	 */
9968	
9969	_applyRule : function (word, rule) {
9970		var entries = rule.entries;
9971		var newWords = [];
9972		
9973		for (var i = 0, _len = entries.length; i < _len; i++) {
9974			var entry = entries[i];
9975			
9976			if (!entry.match || word.match(entry.match)) {
9977				var newWord = word;
9978				
9979				if (entry.remove) {
9980					newWord = newWord.replace(entry.remove, "");
9981				}
9982				
9983				if (rule.type === "SFX") {
9984					newWord = newWord + entry.add;
9985				}
9986				else {
9987					newWord = entry.add + newWord;
9988				}
9989				
9990				newWords.push(newWord);
9991				
9992				if ("continuationClasses" in entry) {
9993					for (var j = 0, _jlen = entry.continuationClasses.length; j < _jlen; j++) {
9994						var continuationRule = this.rules[entry.continuationClasses[j]];
9995						
9996						if (continuationRule) {
9997							newWords = newWords.concat(this._applyRule(newWord, continuationRule));
9998						}
9999						/*
10000						else {
10001							// This shouldn't happen, but it does, at least in the de_DE dictionary.
10002							// I think the author mistakenly supplied lower-case rule codes instead 
10003							// of upper-case.
10004						}
10005						*/
10006					}
10007				}
10008			}
10009		}
10010		
10011		return newWords;
10012	},
10013	
10014	/**
10015	 * Checks whether a word or a capitalization variant exists in the current dictionary.
10016	 * The word is trimmed and several variations of capitalizations are checked.
10017	 * If you want to check a word without any changes made to it, call checkExact()
10018	 *
10019	 * @see http://blog.stevenlevithan.com/archives/faster-trim-javascript re:trimming function
10020	 *
10021	 * @param {String} aWord The word to check.
10022	 * @returns {Boolean}
10023	 */
10024	
10025	check : function (aWord) {
10026		if (!this.loaded) {
10027			throw "Dictionary not loaded.";
10028		}
10029		
10030		// Remove leading and trailing whitespace
10031		var trimmedWord = aWord.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
10032		
10033		if (this.checkExact(trimmedWord)) {
10034			return true;
10035		}
10036		
10037		// The exact word is not in the dictionary.
10038		if (trimmedWord.toUpperCase() === trimmedWord) {
10039			// The word was supplied in all uppercase.
10040			// Check for a capitalized form of the word.
10041			var capitalizedWord = trimmedWord[0] + trimmedWord.substring(1).toLowerCase();
10042			
10043			if (this.hasFlag(capitalizedWord, "KEEPCASE")) {
10044				// Capitalization variants are not allowed for this word.
10045				return false;
10046			}
10047			
10048			if (this.checkExact(capitalizedWord)) {
10049				// The all-caps word is a capitalized word spelled correctly.
10050				return true;
10051			}
10052
10053			if (this.checkExact(trimmedWord.toLowerCase())) {
10054				// The all-caps is a lowercase word spelled correctly.
10055				return true;
10056			}
10057		}
10058		
10059		var uncapitalizedWord = trimmedWord[0].toLowerCase() + trimmedWord.substring(1);
10060		
10061		if (uncapitalizedWord !== trimmedWord) {
10062			if (this.hasFlag(uncapitalizedWord, "KEEPCASE")) {
10063				// Capitalization variants are not allowed for this word.
10064				return false;
10065			}
10066			
10067			// Check for an uncapitalized form
10068			if (this.checkExact(uncapitalizedWord)) {
10069				// The word is spelled correctly but with the first letter capitalized.
10070				return true;
10071			}
10072		}
10073		
10074		return false;
10075	},
10076	
10077	/**
10078	 * Checks whether a word exists in the current dictionary.
10079	 *
10080	 * @param {String} word The word to check.
10081	 * @returns {Boolean}
10082	 */
10083	
10084	checkExact : function (word) {
10085		if (!this.loaded) {
10086			throw "Dictionary not loaded.";
10087		}
10088
10089		var ruleCodes = this.dictionaryTable[word];
10090		
10091		var i, _len;
10092		
10093		if (typeof ruleCodes === 'undefined') {
10094			// Check if this might be a compound word.
10095			if ("COMPOUNDMIN" in this.flags && word.length >= this.flags.COMPOUNDMIN) {
10096				for (i = 0, _len = this.compoundRules.length; i < _len; i++) {
10097					if (word.match(this.compoundRules[i])) {
10098						return true;
10099					}
10100				}
10101			}
10102		}
10103		else if (ruleCodes === null) {
10104			// a null (but not undefined) value for an entry in the dictionary table
10105			// means that the word is in the dictionary but has no flags.
10106			return true;
10107		}
10108		else if (typeof ruleCodes === 'object') { // this.dictionary['hasOwnProperty'] will be a function.
10109			for (i = 0, _len = ruleCodes.length; i < _len; i++) {
10110				if (!this.hasFlag(word, "ONLYINCOMPOUND", ruleCodes[i])) {
10111					return true;
10112				}
10113			}
10114		}
10115
10116		return false;
10117	},
10118	
10119	/**
10120	 * Looks up whether a given word is flagged with a given flag.
10121	 *
10122	 * @param {String} word The word in question.
10123	 * @param {String} flag The flag in question.
10124	 * @return {Boolean}
10125	 */
10126	 
10127	hasFlag : function (word, flag, wordFlags) {
10128		if (!this.loaded) {
10129			throw "Dictionary not loaded.";
10130		}
10131
10132		if (flag in this.flags) {
10133			if (typeof wordFlags === 'undefined') {
10134				wordFlags = Array.prototype.concat.apply([], this.dictionaryTable[word]);
10135			}
10136			
10137			if (wordFlags && wordFlags.indexOf(this.flags[flag]) !== -1) {
10138				return true;
10139			}
10140		}
10141		
10142		return false;
10143	},
10144	
10145	/**
10146	 * Returns a list of suggestions for a misspelled word.
10147	 *
10148	 * @see http://www.norvig.com/spell-correct.html for the basis of this suggestor.
10149	 * This suggestor is primitive, but it works.
10150	 *
10151	 * @param {String} word The misspelling.
10152	 * @param {Number} [limit=5] The maximum number of suggestions to return.
10153	 * @returns {String[]} The array of suggestions.
10154	 */
10155	
10156	alphabet : "",
10157	
10158	suggest : function (word, limit) {
10159		if (!this.loaded) {
10160			throw "Dictionary not loaded.";
10161		}
10162
10163		limit = limit || 5;
10164
10165		if (this.memoized.hasOwnProperty(word)) {
10166			var memoizedLimit = this.memoized[word]['limit'];
10167
10168			// Only return the cached list if it's big enough or if there weren't enough suggestions
10169			// to fill a smaller limit.
10170			if (limit <= memoizedLimit || this.memoized[word]['suggestions'].length < memoizedLimit) {
10171				return this.memoized[word]['suggestions'].slice(0, limit);
10172			}
10173		}
10174		
10175		if (this.check(word)) return [];
10176		
10177		// Check the replacement table.
10178		for (var i = 0, _len = this.replacementTable.length; i < _len; i++) {
10179			var replacementEntry = this.replacementTable[i];
10180			
10181			if (word.indexOf(replacementEntry[0]) !== -1) {
10182				var correctedWord = word.replace(replacementEntry[0], replacementEntry[1]);
10183				
10184				if (this.check(correctedWord)) {
10185					return [ correctedWord ];
10186				}
10187			}
10188		}
10189		
10190		var self = this;
10191		self.alphabet = "abcdefghijklmnopqrstuvwxyz";
10192		
10193		/*
10194		if (!self.alphabet) {
10195			// Use the alphabet as implicitly defined by the words in the dictionary.
10196			var alphaHash = {};
10197			
10198			for (var i in self.dictionaryTable) {
10199				for (var j = 0, _len = i.length; j < _len; j++) {
10200					alphaHash[i[j]] = true;
10201				}
10202			}
10203			
10204			for (var i in alphaHash) {
10205				self.alphabet += i;
10206			}
10207			
10208			var alphaArray = self.alphabet.split("");
10209			alphaArray.sort();
10210			self.alphabet = alphaArray.join("");
10211		}
10212		*/
10213		
10214		/**
10215		 * Returns a hash keyed by all of the strings that can be made by making a single edit to the word (or words in) `words`
10216		 * The value of each entry is the number of unique ways that the resulting word can be made.
10217		 *
10218		 * @arg mixed words Either a hash keyed by words or a string word to operate on.
10219		 * @arg bool known_only Whether this function should ignore strings that are not in the dictionary.
10220		 */
10221		function edits1(words, known_only) {
10222			var rv = {};
10223			
10224			var i, j, _iilen, _len, _jlen, _edit;
10225
10226			var alphabetLength = self.alphabet.length;
10227			
10228			if (typeof words == 'string') {
10229				var word = words;
10230				words = {};
10231				words[word] = true;
10232			}
10233
10234			for (var word in words) {
10235				for (i = 0, _len = word.length + 1; i < _len; i++) {
10236					var s = [ word.substring(0, i), word.substring(i) ];
10237				
10238					// Remove a letter.
10239					if (s[1]) {
10240						_edit = s[0] + s[1].substring(1);
10241
10242						if (!known_only || self.check(_edit)) {
10243							if (!(_edit in rv)) {
10244								rv[_edit] = 1;
10245							}
10246							else {
10247								rv[_edit] += 1;
10248							}
10249						}
10250					}
10251					
10252					// Transpose letters
10253					// Eliminate transpositions of identical letters
10254					if (s[1].length > 1 && s[1][1] !== s[1][0]) {
10255						_edit = s[0] + s[1][1] + s[1][0] + s[1].substring(2);
10256
10257						if (!known_only || self.check(_edit)) {
10258							if (!(_edit in rv)) {
10259								rv[_edit] = 1;
10260							}
10261							else {
10262								rv[_edit] += 1;
10263							}
10264						}
10265					}
10266
10267					if (s[1]) {
10268						// Replace a letter with another letter.
10269
10270						var lettercase = (s[1].substring(0,1).toUpperCase() === s[1].substring(0,1)) ? 'uppercase' : 'lowercase';
10271
10272						for (j = 0; j < alphabetLength; j++) {
10273							var replacementLetter = self.alphabet[j];
10274
10275							// Set the case of the replacement letter to the same as the letter being replaced.
10276							if ( 'uppercase' === lettercase ) {
10277								replacementLetter = replacementLetter.toUpperCase();
10278							}
10279
10280							// Eliminate replacement of a letter by itself
10281							if (replacementLetter != s[1].substring(0,1)){
10282								_edit = s[0] + replacementLetter + s[1].substring(1);
10283
10284								if (!known_only || self.check(_edit)) {
10285									if (!(_edit in rv)) {
10286										rv[_edit] = 1;
10287									}
10288									else {
10289										rv[_edit] += 1;
10290									}
10291								}
10292							}
10293						}
10294					}
10295
10296					if (s[1]) {
10297						// Add a letter between each letter.
10298						for (j = 0; j < alphabetLength; j++) {
10299							// If the letters on each side are capitalized, capitalize the replacement.
10300							var lettercase = (s[0].substring(-1).toUpperCase() === s[0].substring(-1) && s[1].substring(0,1).toUpperCase() === s[1].substring(0,1)) ? 'uppercase' : 'lowercase';
10301
10302							var replacementLetter = self.alphabet[j];
10303
10304							if ( 'uppercase' === lettercase ) {
10305								replacementLetter = replacementLetter.toUpperCase();
10306							}
10307
10308							_edit = s[0] + replacementLetter + s[1];
10309
10310							if (!known_only || self.check(_edit)) {
10311								if (!(_edit in rv)) {
10312									rv[_edit] = 1;
10313								}
10314								else {
10315									rv[_edit] += 1;
10316								}
10317							}
10318						}
10319					}
10320				}
10321			}
10322			
10323			return rv;
10324		}
10325
10326		function correct(word) {
10327			// Get the edit-distance-1 and edit-distance-2 forms of this word.
10328			var ed1 = edits1(word);
10329			var ed2 = edits1(ed1, true);
10330			
10331			// Sort the edits based on how many different ways they were created.
10332			var weighted_corrections = ed2;
10333			
10334			for (var ed1word in ed1) {
10335				if (!self.check(ed1word)) {
10336					continue;
10337				}
10338
10339				if (ed1word in weighted_corrections) {
10340					weighted_corrections[ed1word] += ed1[ed1word];
10341				}
10342				else {
10343					weighted_corrections[ed1word] = ed1[ed1word];
10344				}
10345			}
10346			
10347			var i, _len;
10348
10349			var sorted_corrections = [];
10350			
10351			for (i in weighted_corrections) {
10352				if (weighted_corrections.hasOwnProperty(i)) {
10353					sorted_corrections.push([ i, weighted_corrections[i] ]);
10354				}
10355			}
10356
10357			function sorter(a, b) {
10358				var a_val = a[1];
10359				var b_val = b[1];
10360				if (a_val < b_val) {
10361					return -1;
10362				} else if (a_val > b_val) {
10363					return 1;
10364				}
10365				// @todo If a and b are equally weighted, add our own weight based on something like the key locations on this language's default keyboard.
10366				return b[0].localeCompare(a[0]);
10367			}
10368			
10369			sorted_corrections.sort(sorter).reverse();
10370
10371			var rv = [];
10372
10373			var capitalization_scheme = "lowercase";
10374			
10375			if (word.toUpperCase() === word) {
10376				capitalization_scheme = "uppercase";
10377			}
10378			else if (word.substr(0, 1).toUpperCase() + word.substr(1).toLowerCase() === word) {
10379				capitalization_scheme = "capitalized";
10380			}
10381			
10382			var working_limit = limit;
10383
10384			for (i = 0; i < Math.min(working_limit, sorted_corrections.length); i++) {
10385				if ("uppercase" === capitalization_scheme) {
10386					sorted_corrections[i][0] = sorted_corrections[i][0].toUpperCase();
10387				}
10388				else if ("capitalized" === capitalization_scheme) {
10389					sorted_corrections[i][0] = sorted_corrections[i][0].substr(0, 1).toUpperCase() + sorted_corrections[i][0].substr(1);
10390				}
10391				
10392				if (!self.hasFlag(sorted_corrections[i][0], "NOSUGGEST") && rv.indexOf(sorted_corrections[i][0]) == -1) {
10393					rv.push(sorted_corrections[i][0]);
10394				}
10395				else {
10396					// If one of the corrections is not eligible as a suggestion , make sure we still return the right number of suggestions.
10397					working_limit++;
10398				}
10399			}
10400
10401			return rv;
10402		}
10403		
10404		this.memoized[word] = {
10405			'suggestions': correct(word),
10406			'limit': limit
10407		};
10408
10409		return this.memoized[word]['suggestions'];
10410	}
10411};
10412})();
10413
10414// Support for use as a node.js module.
10415if (true) {
10416	module.exports = Typo;
10417}
10418
10419
10420/***/ }),
10421
10422/***/ "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjMDAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==":
10423/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
10424  !*** data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjMDAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg== ***!
10425  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
10426/***/ ((module) => {
10427
10428"use strict";
10429module.exports = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjMDAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==";
10430
10431/***/ }),
10432
10433/***/ "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==":
10434/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
10435  !*** data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg== ***!
10436  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
10437/***/ ((module) => {
10438
10439"use strict";
10440module.exports = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==";
10441
10442/***/ }),
10443
10444/***/ "data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\"><filter id=\"filter\"><feGaussianBlur stdDeviation=\"8\" /></filter></svg>#filter":
10445/*!**************************************************************************************************************************************************************!*\
10446  !*** data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feGaussianBlur stdDeviation="8" /></filter></svg>#filter ***!
10447  \**************************************************************************************************************************************************************/
10448/***/ ((module) => {
10449
10450"use strict";
10451module.exports = "data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\"><filter id=\"filter\"><feGaussianBlur stdDeviation=\"8\" /></filter></svg>#filter";
10452
10453/***/ }),
10454
10455/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.eot":
10456/*!*********************************************************************!*\
10457  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.eot ***!
10458  \*********************************************************************/
10459/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10460
10461"use strict";
10462module.exports = __webpack_require__.p + "f6c676e1005f8d883fcb.eot";
10463
10464/***/ }),
10465
10466/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.svg":
10467/*!*********************************************************************!*\
10468  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.svg ***!
10469  \*********************************************************************/
10470/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10471
10472"use strict";
10473module.exports = __webpack_require__.p + "b3db874d80762a7726d7.svg";
10474
10475/***/ }),
10476
10477/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.ttf":
10478/*!*********************************************************************!*\
10479  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.ttf ***!
10480  \*********************************************************************/
10481/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10482
10483"use strict";
10484module.exports = __webpack_require__.p + "3a6cbd7e19f8451e63e6.ttf";
10485
10486/***/ }),
10487
10488/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.woff":
10489/*!**********************************************************************!*\
10490  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.woff ***!
10491  \**********************************************************************/
10492/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10493
10494"use strict";
10495module.exports = __webpack_require__.p + "2d4244cdcedf6f955511.woff";
10496
10497/***/ }),
10498
10499/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.woff2":
10500/*!***********************************************************************!*\
10501  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.woff2 ***!
10502  \***********************************************************************/
10503/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10504
10505"use strict";
10506module.exports = __webpack_require__.p + "f59e63812dc02e93e677.woff2";
10507
10508/***/ }),
10509
10510/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.eot":
10511/*!***************************************************************************!*\
10512  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.eot ***!
10513  \***************************************************************************/
10514/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10515
10516"use strict";
10517module.exports = __webpack_require__.p + "60120b08290f11c17faa.eot";
10518
10519/***/ }),
10520
10521/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.svg":
10522/*!***************************************************************************!*\
10523  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.svg ***!
10524  \***************************************************************************/
10525/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10526
10527"use strict";
10528module.exports = __webpack_require__.p + "290640c3808fc1714a51.svg";
10529
10530/***/ }),
10531
10532/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.ttf":
10533/*!***************************************************************************!*\
10534  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.ttf ***!
10535  \***************************************************************************/
10536/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10537
10538"use strict";
10539module.exports = __webpack_require__.p + "0fcfa3cf68921093708e.ttf";
10540
10541/***/ }),
10542
10543/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.woff":
10544/*!****************************************************************************!*\
10545  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.woff ***!
10546  \****************************************************************************/
10547/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10548
10549"use strict";
10550module.exports = __webpack_require__.p + "c0df3c405dad05bebd19.woff";
10551
10552/***/ }),
10553
10554/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.woff2":
10555/*!*****************************************************************************!*\
10556  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.woff2 ***!
10557  \*****************************************************************************/
10558/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10559
10560"use strict";
10561module.exports = __webpack_require__.p + "4977e7a93d958db4aaad.woff2";
10562
10563/***/ }),
10564
10565/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.eot":
10566/*!*******************************************************************************!*\
10567  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.eot ***!
10568  \*******************************************************************************/
10569/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10570
10571"use strict";
10572module.exports = __webpack_require__.p + "0aaa93df75858ceabfe3.eot";
10573
10574/***/ }),
10575
10576/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.svg":
10577/*!*******************************************************************************!*\
10578  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.svg ***!
10579  \*******************************************************************************/
10580/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10581
10582"use strict";
10583module.exports = __webpack_require__.p + "1f2758cabc53c7563e16.svg";
10584
10585/***/ }),
10586
10587/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.ttf":
10588/*!*******************************************************************************!*\
10589  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.ttf ***!
10590  \*******************************************************************************/
10591/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10592
10593"use strict";
10594module.exports = __webpack_require__.p + "0339b2b1253b2c76cca5.ttf";
10595
10596/***/ }),
10597
10598/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.woff":
10599/*!********************************************************************************!*\
10600  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.woff ***!
10601  \********************************************************************************/
10602/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10603
10604"use strict";
10605module.exports = __webpack_require__.p + "34253fd9ff879587ae13.woff";
10606
10607/***/ }),
10608
10609/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.woff2":
10610/*!*********************************************************************************!*\
10611  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.woff2 ***!
10612  \*********************************************************************************/
10613/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10614
10615"use strict";
10616module.exports = __webpack_require__.p + "b04479957f76a6dd48fb.woff2";
10617
10618/***/ }),
10619
10620/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.eot":
10621/*!******************************************************************************!*\
10622  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.eot ***!
10623  \******************************************************************************/
10624/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10625
10626"use strict";
10627module.exports = __webpack_require__.p + "9825f7f146fe1bb8cc2a.eot";
10628
10629/***/ }),
10630
10631/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.svg":
10632/*!******************************************************************************!*\
10633  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.svg ***!
10634  \******************************************************************************/
10635/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10636
10637"use strict";
10638module.exports = __webpack_require__.p + "f684c2757b1deda0c26d.svg";
10639
10640/***/ }),
10641
10642/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.ttf":
10643/*!******************************************************************************!*\
10644  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.ttf ***!
10645  \******************************************************************************/
10646/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10647
10648"use strict";
10649module.exports = __webpack_require__.p + "4e2ec0174114cbd99d43.ttf";
10650
10651/***/ }),
10652
10653/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.woff":
10654/*!*******************************************************************************!*\
10655  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.woff ***!
10656  \*******************************************************************************/
10657/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10658
10659"use strict";
10660module.exports = __webpack_require__.p + "4dbbe6bf5e8663971ee2.woff";
10661
10662/***/ }),
10663
10664/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.woff2":
10665/*!********************************************************************************!*\
10666  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.woff2 ***!
10667  \********************************************************************************/
10668/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10669
10670"use strict";
10671module.exports = __webpack_require__.p + "33da389c0466add5f476.woff2";
10672
10673/***/ }),
10674
10675/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.eot":
10676/*!***********************************************************************!*\
10677  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.eot ***!
10678  \***********************************************************************/
10679/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10680
10681"use strict";
10682module.exports = __webpack_require__.p + "b945e75e519cea048cda.eot";
10683
10684/***/ }),
10685
10686/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.svg":
10687/*!***********************************************************************!*\
10688  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.svg ***!
10689  \***********************************************************************/
10690/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10691
10692"use strict";
10693module.exports = __webpack_require__.p + "484c5221df6d705a878d.svg";
10694
10695/***/ }),
10696
10697/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.ttf":
10698/*!***********************************************************************!*\
10699  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.ttf ***!
10700  \***********************************************************************/
10701/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10702
10703"use strict";
10704module.exports = __webpack_require__.p + "f426c21abb36ddfdb74c.ttf";
10705
10706/***/ }),
10707
10708/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.woff":
10709/*!************************************************************************!*\
10710  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.woff ***!
10711  \************************************************************************/
10712/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10713
10714"use strict";
10715module.exports = __webpack_require__.p + "ea0e95f64e0361ebc096.woff";
10716
10717/***/ }),
10718
10719/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.woff2":
10720/*!*************************************************************************!*\
10721  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.woff2 ***!
10722  \*************************************************************************/
10723/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10724
10725"use strict";
10726module.exports = __webpack_require__.p + "fd83affb7447a5fd1dbb.woff2";
10727
10728/***/ }),
10729
10730/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.eot":
10731/*!**********************************************************************!*\
10732  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.eot ***!
10733  \**********************************************************************/
10734/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10735
10736"use strict";
10737module.exports = __webpack_require__.p + "e9e25501bb8a5427be3a.eot";
10738
10739/***/ }),
10740
10741/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.svg":
10742/*!**********************************************************************!*\
10743  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.svg ***!
10744  \**********************************************************************/
10745/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10746
10747"use strict";
10748module.exports = __webpack_require__.p + "5e361e58fcbc9ad3b46b.svg";
10749
10750/***/ }),
10751
10752/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.ttf":
10753/*!**********************************************************************!*\
10754  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.ttf ***!
10755  \**********************************************************************/
10756/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10757
10758"use strict";
10759module.exports = __webpack_require__.p + "5ffd6b12ee11f029544b.ttf";
10760
10761/***/ }),
10762
10763/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.woff":
10764/*!***********************************************************************!*\
10765  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.woff ***!
10766  \***********************************************************************/
10767/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10768
10769"use strict";
10770module.exports = __webpack_require__.p + "43e58076e400525d9dba.woff";
10771
10772/***/ }),
10773
10774/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.woff2":
10775/*!************************************************************************!*\
10776  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.woff2 ***!
10777  \************************************************************************/
10778/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10779
10780"use strict";
10781module.exports = __webpack_require__.p + "d1228138dbfcdcf4b935.woff2";
10782
10783/***/ }),
10784
10785/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.eot":
10786/*!****************************************************************************!*\
10787  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.eot ***!
10788  \****************************************************************************/
10789/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10790
10791"use strict";
10792module.exports = __webpack_require__.p + "2e3ff4083f33f3c77ea0.eot";
10793
10794/***/ }),
10795
10796/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.svg":
10797/*!****************************************************************************!*\
10798  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.svg ***!
10799  \****************************************************************************/
10800/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10801
10802"use strict";
10803module.exports = __webpack_require__.p + "a5bca0943c2dedf74d52.svg";
10804
10805/***/ }),
10806
10807/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.ttf":
10808/*!****************************************************************************!*\
10809  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.ttf ***!
10810  \****************************************************************************/
10811/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10812
10813"use strict";
10814module.exports = __webpack_require__.p + "76cce81e860fcb7abfe2.ttf";
10815
10816/***/ }),
10817
10818/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.woff":
10819/*!*****************************************************************************!*\
10820  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.woff ***!
10821  \*****************************************************************************/
10822/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10823
10824"use strict";
10825module.exports = __webpack_require__.p + "f6a3382167d11dd873f6.woff";
10826
10827/***/ }),
10828
10829/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.woff2":
10830/*!******************************************************************************!*\
10831  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.woff2 ***!
10832  \******************************************************************************/
10833/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10834
10835"use strict";
10836module.exports = __webpack_require__.p + "e310cc5a28dead927f51.woff2";
10837
10838/***/ }),
10839
10840/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.eot":
10841/*!***********************************************************************!*\
10842  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.eot ***!
10843  \***********************************************************************/
10844/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10845
10846"use strict";
10847module.exports = __webpack_require__.p + "3e4f963a585f35f674ee.eot";
10848
10849/***/ }),
10850
10851/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.svg":
10852/*!***********************************************************************!*\
10853  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.svg ***!
10854  \***********************************************************************/
10855/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10856
10857"use strict";
10858module.exports = __webpack_require__.p + "419c9aaca31c14012789.svg";
10859
10860/***/ }),
10861
10862/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.ttf":
10863/*!***********************************************************************!*\
10864  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.ttf ***!
10865  \***********************************************************************/
10866/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10867
10868"use strict";
10869module.exports = __webpack_require__.p + "e06782e2e74b90fe7716.ttf";
10870
10871/***/ }),
10872
10873/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.woff":
10874/*!************************************************************************!*\
10875  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.woff ***!
10876  \************************************************************************/
10877/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10878
10879"use strict";
10880module.exports = __webpack_require__.p + "d16f692e7e736db0ce7b.woff";
10881
10882/***/ }),
10883
10884/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.woff2":
10885/*!*************************************************************************!*\
10886  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.woff2 ***!
10887  \*************************************************************************/
10888/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10889
10890"use strict";
10891module.exports = __webpack_require__.p + "4c29e4fa9c6112230ed4.woff2";
10892
10893/***/ }),
10894
10895/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.eot":
10896/*!*****************************************************************************!*\
10897  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.eot ***!
10898  \*****************************************************************************/
10899/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10900
10901"use strict";
10902module.exports = __webpack_require__.p + "8ee8655c7fab224532c7.eot";
10903
10904/***/ }),
10905
10906/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.svg":
10907/*!*****************************************************************************!*\
10908  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.svg ***!
10909  \*****************************************************************************/
10910/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10911
10912"use strict";
10913module.exports = __webpack_require__.p + "7d2ecf204e9fb31e4fe5.svg";
10914
10915/***/ }),
10916
10917/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.ttf":
10918/*!*****************************************************************************!*\
10919  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.ttf ***!
10920  \*****************************************************************************/
10921/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10922
10923"use strict";
10924module.exports = __webpack_require__.p + "e0b441be652a91a651bd.ttf";
10925
10926/***/ }),
10927
10928/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.woff":
10929/*!******************************************************************************!*\
10930  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.woff ***!
10931  \******************************************************************************/
10932/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10933
10934"use strict";
10935module.exports = __webpack_require__.p + "a5a2acd720b82408ea94.woff";
10936
10937/***/ }),
10938
10939/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.woff2":
10940/*!*******************************************************************************!*\
10941  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.woff2 ***!
10942  \*******************************************************************************/
10943/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10944
10945"use strict";
10946module.exports = __webpack_require__.p + "6138f70206ee37314a02.woff2";
10947
10948/***/ }),
10949
10950/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue.eot":
10951/*!****************************************************************!*\
10952  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue.eot ***!
10953  \****************************************************************/
10954/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10955
10956"use strict";
10957module.exports = __webpack_require__.p + "4e69d99ef6b9b65324ec.eot";
10958
10959/***/ }),
10960
10961/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue.svg":
10962/*!****************************************************************!*\
10963  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue.svg ***!
10964  \****************************************************************/
10965/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10966
10967"use strict";
10968module.exports = __webpack_require__.p + "53ece6944039b87b0d68.svg";
10969
10970/***/ }),
10971
10972/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue.ttf":
10973/*!****************************************************************!*\
10974  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue.ttf ***!
10975  \****************************************************************/
10976/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10977
10978"use strict";
10979module.exports = __webpack_require__.p + "768c8cdbf4d5bdf71903.ttf";
10980
10981/***/ }),
10982
10983/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue.woff":
10984/*!*****************************************************************!*\
10985  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue.woff ***!
10986  \*****************************************************************/
10987/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10988
10989"use strict";
10990module.exports = __webpack_require__.p + "2ba8cc41d26faf25314a.woff";
10991
10992/***/ }),
10993
10994/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue.woff2":
10995/*!******************************************************************!*\
10996  !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue.woff2 ***!
10997  \******************************************************************/
10998/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10999
11000"use strict";
11001module.exports = __webpack_require__.p + "db73a218633d32c5dc8b.woff2";
11002
11003/***/ }),
11004
11005/***/ "./assets/images/Footer-decal.svg":
11006/*!****************************************!*\
11007  !*** ./assets/images/Footer-decal.svg ***!
11008  \****************************************/
11009/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
11010
11011"use strict";
11012module.exports = __webpack_require__.p + "9fbb063c8a5a2cc0823d.svg";
11013
11014/***/ }),
11015
11016/***/ "./assets/images/blue-arrow-right.svg":
11017/*!********************************************!*\
11018  !*** ./assets/images/blue-arrow-right.svg ***!
11019  \********************************************/
11020/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
11021
11022"use strict";
11023module.exports = __webpack_require__.p + "66ac92f412aecb8f1010.svg";
11024
11025/***/ }),
11026
11027/***/ "./assets/images/down-chevron-white.svg":
11028/*!**********************************************!*\
11029  !*** ./assets/images/down-chevron-white.svg ***!
11030  \**********************************************/
11031/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
11032
11033"use strict";
11034module.exports = __webpack_require__.p + "8eb5c5c05a84105dfa70.svg";
11035
11036/***/ }),
11037
11038/***/ "./assets/images/down-chevron.svg":
11039/*!****************************************!*\
11040  !*** ./assets/images/down-chevron.svg ***!
11041  \****************************************/
11042/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
11043
11044"use strict";
11045module.exports = __webpack_require__.p + "6a9656d2e027b1f480bb.svg";
11046
11047/***/ }),
11048
11049/***/ "./assets/images/point.png":
11050/*!*********************************!*\
11051  !*** ./assets/images/point.png ***!
11052  \*********************************/
11053/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
11054
11055"use strict";
11056module.exports = __webpack_require__.p + "02598292a29dbf133f27.png";
11057
11058/***/ }),
11059
11060/***/ "./assets/images/red-arrow-right.svg":
11061/*!*******************************************!*\
11062  !*** ./assets/images/red-arrow-right.svg ***!
11063  \*******************************************/
11064/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
11065
11066"use strict";
11067module.exports = __webpack_require__.p + "44a275416bc03dc9e509.svg";
11068
11069/***/ }),
11070
11071/***/ "./assets/images/search.svg":
11072/*!**********************************!*\
11073  !*** ./assets/images/search.svg ***!
11074  \**********************************/
11075/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
11076
11077"use strict";
11078module.exports = __webpack_require__.p + "2a7aeeeb0c0c4bafa03a.svg";
11079
11080/***/ }),
11081
11082/***/ "./assets/images/special_underline.svg":
11083/*!*********************************************!*\
11084  !*** ./assets/images/special_underline.svg ***!
11085  \*********************************************/
11086/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
11087
11088"use strict";
11089module.exports = __webpack_require__.p + "0b174494e0fdf0a0dc33.svg";
11090
11091/***/ }),
11092
11093/***/ "./assets/images/spinner.svg":
11094/*!***********************************!*\
11095  !*** ./assets/images/spinner.svg ***!
11096  \***********************************/
11097/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
11098
11099"use strict";
11100module.exports = __webpack_require__.p + "2a7baf45616bc72e40dc.svg";
11101
11102/***/ }),
11103
11104/***/ "?b2fd":
11105/*!********************!*\
11106  !*** fs (ignored) ***!
11107  \********************/
11108/***/ (() => {
11109
11110/* (ignored) */
11111
11112/***/ }),
11113
vendor: 90,672 bytes, lines 11114-15003
11114/***/ "./node_modules/@glidejs/glide/dist/glide.esm.js":
11115/*!*******************************************************!*\
11116  !*** ./node_modules/@glidejs/glide/dist/glide.esm.js ***!
11117  \*******************************************************/
11118/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
11119
11120"use strict";
11121__webpack_require__.r(__webpack_exports__);
11122/* harmony export */ __webpack_require__.d(__webpack_exports__, {
11123/* harmony export */   "default": () => (/* binding */ Glide)
11124/* harmony export */ });
11125/*!
11126 * Glide.js v3.6.0
11127 * (c) 2013-2022 Jędrzej Chałubek (https://github.com/jedrzejchalubek/)
11128 * Released under the MIT License.
11129 */
11130
11131function _typeof(obj) {
11132  "@babel/helpers - typeof";
11133
11134  if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
11135    _typeof = function (obj) {
11136      return typeof obj;
11137    };
11138  } else {
11139    _typeof = function (obj) {
11140      return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
11141    };
11142  }
11143
11144  return _typeof(obj);
11145}
11146
11147function _classCallCheck(instance, Constructor) {
11148  if (!(instance instanceof Constructor)) {
11149    throw new TypeError("Cannot call a class as a function");
11150  }
11151}
11152
11153function _defineProperties(target, props) {
11154  for (var i = 0; i < props.length; i++) {
11155    var descriptor = props[i];
11156    descriptor.enumerable = descriptor.enumerable || false;
11157    descriptor.configurable = true;
11158    if ("value" in descriptor) descriptor.writable = true;
11159    Object.defineProperty(target, descriptor.key, descriptor);
11160  }
11161}
11162
11163function _createClass(Constructor, protoProps, staticProps) {
11164  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
11165  if (staticProps) _defineProperties(Constructor, staticProps);
11166  return Constructor;
11167}
11168
11169function _inherits(subClass, superClass) {
11170  if (typeof superClass !== "function" && superClass !== null) {
11171    throw new TypeError("Super expression must either be null or a function");
11172  }
11173
11174  subClass.prototype = Object.create(superClass && superClass.prototype, {
11175    constructor: {
11176      value: subClass,
11177      writable: true,
11178      configurable: true
11179    }
11180  });
11181  if (superClass) _setPrototypeOf(subClass, superClass);
11182}
11183
11184function _getPrototypeOf(o) {
11185  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
11186    return o.__proto__ || Object.getPrototypeOf(o);
11187  };
11188  return _getPrototypeOf(o);
11189}
11190
11191function _setPrototypeOf(o, p) {
11192  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
11193    o.__proto__ = p;
11194    return o;
11195  };
11196
11197  return _setPrototypeOf(o, p);
11198}
11199
11200function _isNativeReflectConstruct() {
11201  if (typeof Reflect === "undefined" || !Reflect.construct) return false;
11202  if (Reflect.construct.sham) return false;
11203  if (typeof Proxy === "function") return true;
11204
11205  try {
11206    Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
11207    return true;
11208  } catch (e) {
11209    return false;
11210  }
11211}
11212
11213function _assertThisInitialized(self) {
11214  if (self === void 0) {
11215    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
11216  }
11217
11218  return self;
11219}
11220
11221function _possibleConstructorReturn(self, call) {
11222  if (call && (typeof call === "object" || typeof call === "function")) {
11223    return call;
11224  } else if (call !== void 0) {
11225    throw new TypeError("Derived constructors may only return object or undefined");
11226  }
11227
11228  return _assertThisInitialized(self);
11229}
11230
11231function _createSuper(Derived) {
11232  var hasNativeReflectConstruct = _isNativeReflectConstruct();
11233
11234  return function _createSuperInternal() {
11235    var Super = _getPrototypeOf(Derived),
11236        result;
11237
11238    if (hasNativeReflectConstruct) {
11239      var NewTarget = _getPrototypeOf(this).constructor;
11240
11241      result = Reflect.construct(Super, arguments, NewTarget);
11242    } else {
11243      result = Super.apply(this, arguments);
11244    }
11245
11246    return _possibleConstructorReturn(this, result);
11247  };
11248}
11249
11250function _superPropBase(object, property) {
11251  while (!Object.prototype.hasOwnProperty.call(object, property)) {
11252    object = _getPrototypeOf(object);
11253    if (object === null) break;
11254  }
11255
11256  return object;
11257}
11258
11259function _get() {
11260  if (typeof Reflect !== "undefined" && Reflect.get) {
11261    _get = Reflect.get;
11262  } else {
11263    _get = function _get(target, property, receiver) {
11264      var base = _superPropBase(target, property);
11265
11266      if (!base) return;
11267      var desc = Object.getOwnPropertyDescriptor(base, property);
11268
11269      if (desc.get) {
11270        return desc.get.call(arguments.length < 3 ? target : receiver);
11271      }
11272
11273      return desc.value;
11274    };
11275  }
11276
11277  return _get.apply(this, arguments);
11278}
11279
11280var defaults = {
11281  /**
11282   * Type of the movement.
11283   *
11284   * Available types:
11285   * `slider` - Rewinds slider to the start/end when it reaches the first or last slide.
11286   * `carousel` - Changes slides without starting over when it reaches the first or last slide.
11287   *
11288   * @type {String}
11289   */
11290  type: 'slider',
11291
11292  /**
11293   * Start at specific slide number defined with zero-based index.
11294   *
11295   * @type {Number}
11296   */
11297  startAt: 0,
11298
11299  /**
11300   * A number of slides visible on the single viewport.
11301   *
11302   * @type {Number}
11303   */
11304  perView: 1,
11305
11306  /**
11307   * Focus currently active slide at a specified position in the track.
11308   *
11309   * Available inputs:
11310   * `center` - Current slide will be always focused at the center of a track.
11311   * `0,1,2,3...` - Current slide will be focused on the specified zero-based index.
11312   *
11313   * @type {String|Number}
11314   */
11315  focusAt: 0,
11316
11317  /**
11318   * A size of the gap added between slides.
11319   *
11320   * @type {Number}
11321   */
11322  gap: 10,
11323
11324  /**
11325   * Change slides after a specified interval. Use `false` for turning off autoplay.
11326   *
11327   * @type {Number|Boolean}
11328   */
11329  autoplay: false,
11330
11331  /**
11332   * Stop autoplay on mouseover event.
11333   *
11334   * @type {Boolean}
11335   */
11336  hoverpause: true,
11337
11338  /**
11339   * Allow for changing slides with left and right keyboard arrows.
11340   *
11341   * @type {Boolean}
11342   */
11343  keyboard: true,
11344
11345  /**
11346   * Stop running `perView` number of slides from the end. Use this
11347   * option if you don't want to have an empty space after
11348   * a slider. Works only with `slider` type and a
11349   * non-centered `focusAt` setting.
11350   *
11351   * @type {Boolean}
11352   */
11353  bound: false,
11354
11355  /**
11356   * Minimal swipe distance needed to change the slide. Use `false` for turning off a swiping.
11357   *
11358   * @type {Number|Boolean}
11359   */
11360  swipeThreshold: 80,
11361
11362  /**
11363   * Minimal mouse drag distance needed to change the slide. Use `false` for turning off a dragging.
11364   *
11365   * @type {Number|Boolean}
11366   */
11367  dragThreshold: 120,
11368
11369  /**
11370   * A number of slides moved on single swipe.
11371   *
11372   * Available types:
11373   * `` - Moves slider by one slide per swipe
11374   * `|` - Moves slider between views per swipe (number of slides defined in `perView` options)
11375   *
11376   * @type {String}
11377   */
11378  perSwipe: '',
11379
11380  /**
11381   * Moving distance ratio of the slides on a swiping and dragging.
11382   *
11383   * @type {Number}
11384   */
11385  touchRatio: 0.5,
11386
11387  /**
11388   * Angle required to activate slides moving on swiping or dragging.
11389   *
11390   * @type {Number}
11391   */
11392  touchAngle: 45,
11393
11394  /**
11395   * Duration of the animation in milliseconds.
11396   *
11397   * @type {Number}
11398   */
11399  animationDuration: 400,
11400
11401  /**
11402   * Allows looping the `slider` type. Slider will rewind to the first/last slide when it's at the start/end.
11403   *
11404   * @type {Boolean}
11405   */
11406  rewind: true,
11407
11408  /**
11409   * Duration of the rewinding animation of the `slider` type in milliseconds.
11410   *
11411   * @type {Number}
11412   */
11413  rewindDuration: 800,
11414
11415  /**
11416   * Easing function for the animation.
11417   *
11418   * @type {String}
11419   */
11420  animationTimingFunc: 'cubic-bezier(.165, .840, .440, 1)',
11421
11422  /**
11423   * Wait for the animation to finish until the next user input can be processed
11424   *
11425   * @type {boolean}
11426   */
11427  waitForTransition: true,
11428
11429  /**
11430   * Throttle costly events at most once per every wait milliseconds.
11431   *
11432   * @type {Number}
11433   */
11434  throttle: 10,
11435
11436  /**
11437   * Moving direction mode.
11438   *
11439   * Available inputs:
11440   * - 'ltr' - left to right movement,
11441   * - 'rtl' - right to left movement.
11442   *
11443   * @type {String}
11444   */
11445  direction: 'ltr',
11446
11447  /**
11448   * The distance value of the next and previous viewports which
11449   * have to peek in the current view. Accepts number and
11450   * pixels as a string. Left and right peeking can be
11451   * set up separately with a directions object.
11452   *
11453   * For example:
11454   * `100` - Peek 100px on the both sides.
11455   * { before: 100, after: 50 }` - Peek 100px on the left side and 50px on the right side.
11456   *
11457   * @type {Number|String|Object}
11458   */
11459  peek: 0,
11460
11461  /**
11462   * Defines how many clones of current viewport will be generated.
11463   *
11464   * @type {Number}
11465   */
11466  cloningRatio: 1,
11467
11468  /**
11469   * Collection of options applied at specified media breakpoints.
11470   * For example: display two slides per view under 800px.
11471   * `{
11472   *   '800px': {
11473   *     perView: 2
11474   *   }
11475   * }`
11476   */
11477  breakpoints: {},
11478
11479  /**
11480   * Collection of internally used HTML classes.
11481   *
11482   * @todo Refactor `slider` and `carousel` properties to single `type: { slider: '', carousel: '' }` object
11483   * @type {Object}
11484   */
11485  classes: {
11486    swipeable: 'glide--swipeable',
11487    dragging: 'glide--dragging',
11488    direction: {
11489      ltr: 'glide--ltr',
11490      rtl: 'glide--rtl'
11491    },
11492    type: {
11493      slider: 'glide--slider',
11494      carousel: 'glide--carousel'
11495    },
11496    slide: {
11497      clone: 'glide__slide--clone',
11498      active: 'glide__slide--active'
11499    },
11500    arrow: {
11501      disabled: 'glide__arrow--disabled'
11502    },
11503    nav: {
11504      active: 'glide__bullet--active'
11505    }
11506  }
11507};
11508
11509/**
11510 * Outputs warning message to the bowser console.
11511 *
11512 * @param  {String} msg
11513 * @return {Void}
11514 */
11515function warn(msg) {
11516  console.error("[Glide warn]: ".concat(msg));
11517}
11518
11519/**
11520 * Converts value entered as number
11521 * or string to integer value.
11522 *
11523 * @param {String} value
11524 * @returns {Number}
11525 */
11526function toInt(value) {
11527  return parseInt(value);
11528}
11529/**
11530 * Converts value entered as number
11531 * or string to flat value.
11532 *
11533 * @param {String} value
11534 * @returns {Number}
11535 */
11536
11537function toFloat(value) {
11538  return parseFloat(value);
11539}
11540/**
11541 * Indicates whether the specified value is a string.
11542 *
11543 * @param  {*}   value
11544 * @return {Boolean}
11545 */
11546
11547function isString(value) {
11548  return typeof value === 'string';
11549}
11550/**
11551 * Indicates whether the specified value is an object.
11552 *
11553 * @param  {*} value
11554 * @return {Boolean}
11555 *
11556 * @see https://github.com/jashkenas/underscore
11557 */
11558
11559function isObject(value) {
11560  var type = _typeof(value);
11561
11562  return type === 'function' || type === 'object' && !!value; // eslint-disable-line no-mixed-operators
11563}
11564/**
11565 * Indicates whether the specified value is a function.
11566 *
11567 * @param  {*} value
11568 * @return {Boolean}
11569 */
11570
11571function isFunction(value) {
11572  return typeof value === 'function';
11573}
11574/**
11575 * Indicates whether the specified value is undefined.
11576 *
11577 * @param  {*} value
11578 * @return {Boolean}
11579 */
11580
11581function isUndefined(value) {
11582  return typeof value === 'undefined';
11583}
11584/**
11585 * Indicates whether the specified value is an array.
11586 *
11587 * @param  {*} value
11588 * @return {Boolean}
11589 */
11590
11591function isArray(value) {
11592  return value.constructor === Array;
11593}
11594
11595/**
11596 * Creates and initializes specified collection of extensions.
11597 * Each extension receives access to instance of glide and rest of components.
11598 *
11599 * @param {Object} glide
11600 * @param {Object} extensions
11601 *
11602 * @returns {Object}
11603 */
11604
11605function mount(glide, extensions, events) {
11606  var components = {};
11607
11608  for (var name in extensions) {
11609    if (isFunction(extensions[name])) {
11610      components[name] = extensions[name](glide, components, events);
11611    } else {
11612      warn('Extension must be a function');
11613    }
11614  }
11615
11616  for (var _name in components) {
11617    if (isFunction(components[_name].mount)) {
11618      components[_name].mount();
11619    }
11620  }
11621
11622  return components;
11623}
11624
11625/**
11626 * Defines getter and setter property on the specified object.
11627 *
11628 * @param  {Object} obj         Object where property has to be defined.
11629 * @param  {String} prop        Name of the defined property.
11630 * @param  {Object} definition  Get and set definitions for the property.
11631 * @return {Void}
11632 */
11633function define(obj, prop, definition) {
11634  Object.defineProperty(obj, prop, definition);
11635}
11636/**
11637 * Sorts aphabetically object keys.
11638 *
11639 * @param  {Object} obj
11640 * @return {Object}
11641 */
11642
11643function sortKeys(obj) {
11644  return Object.keys(obj).sort().reduce(function (r, k) {
11645    r[k] = obj[k];
11646    return r[k], r;
11647  }, {});
11648}
11649/**
11650 * Merges passed settings object with default options.
11651 *
11652 * @param  {Object} defaults
11653 * @param  {Object} settings
11654 * @return {Object}
11655 */
11656
11657function mergeOptions(defaults, settings) {
11658  var options = Object.assign({}, defaults, settings); // `Object.assign` do not deeply merge objects, so we
11659  // have to do it manually for every nested object
11660  // in options. Although it does not look smart,
11661  // it's smaller and faster than some fancy
11662  // merging deep-merge algorithm script.
11663
11664  if (settings.hasOwnProperty('classes')) {
11665    options.classes = Object.assign({}, defaults.classes, settings.classes);
11666
11667    if (settings.classes.hasOwnProperty('direction')) {
11668      options.classes.direction = Object.assign({}, defaults.classes.direction, settings.classes.direction);
11669    }
11670
11671    if (settings.classes.hasOwnProperty('type')) {
11672      options.classes.type = Object.assign({}, defaults.classes.type, settings.classes.type);
11673    }
11674
11675    if (settings.classes.hasOwnProperty('slide')) {
11676      options.classes.slide = Object.assign({}, defaults.classes.slide, settings.classes.slide);
11677    }
11678
11679    if (settings.classes.hasOwnProperty('arrow')) {
11680      options.classes.arrow = Object.assign({}, defaults.classes.arrow, settings.classes.arrow);
11681    }
11682
11683    if (settings.classes.hasOwnProperty('nav')) {
11684      options.classes.nav = Object.assign({}, defaults.classes.nav, settings.classes.nav);
11685    }
11686  }
11687
11688  if (settings.hasOwnProperty('breakpoints')) {
11689    options.breakpoints = Object.assign({}, defaults.breakpoints, settings.breakpoints);
11690  }
11691
11692  return options;
11693}
11694
11695var EventsBus = /*#__PURE__*/function () {
11696  /**
11697   * Construct a EventBus instance.
11698   *
11699   * @param {Object} events
11700   */
11701  function EventsBus() {
11702    var events = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
11703
11704    _classCallCheck(this, EventsBus);
11705
11706    this.events = events;
11707    this.hop = events.hasOwnProperty;
11708  }
11709  /**
11710   * Adds listener to the specifed event.
11711   *
11712   * @param {String|Array} event
11713   * @param {Function} handler
11714   */
11715
11716
11717  _createClass(EventsBus, [{
11718    key: "on",
11719    value: function on(event, handler) {
11720      if (isArray(event)) {
11721        for (var i = 0; i < event.length; i++) {
11722          this.on(event[i], handler);
11723        }
11724
11725        return;
11726      } // Create the event's object if not yet created
11727
11728
11729      if (!this.hop.call(this.events, event)) {
11730        this.events[event] = [];
11731      } // Add the handler to queue
11732
11733
11734      var index = this.events[event].push(handler) - 1; // Provide handle back for removal of event
11735
11736      return {
11737        remove: function remove() {
11738          delete this.events[event][index];
11739        }
11740      };
11741    }
11742    /**
11743     * Runs registered handlers for specified event.
11744     *
11745     * @param {String|Array} event
11746     * @param {Object=} context
11747     */
11748
11749  }, {
11750    key: "emit",
11751    value: function emit(event, context) {
11752      if (isArray(event)) {
11753        for (var i = 0; i < event.length; i++) {
11754          this.emit(event[i], context);
11755        }
11756
11757        return;
11758      } // If the event doesn't exist, or there's no handlers in queue, just leave
11759
11760
11761      if (!this.hop.call(this.events, event)) {
11762        return;
11763      } // Cycle through events queue, fire!
11764
11765
11766      this.events[event].forEach(function (item) {
11767        item(context || {});
11768      });
11769    }
11770  }]);
11771
11772  return EventsBus;
11773}();
11774
11775var Glide$1 = /*#__PURE__*/function () {
11776  /**
11777   * Construct glide.
11778   *
11779   * @param  {String} selector
11780   * @param  {Object} options
11781   */
11782  function Glide(selector) {
11783    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
11784
11785    _classCallCheck(this, Glide);
11786
11787    this._c = {};
11788    this._t = [];
11789    this._e = new EventsBus();
11790    this.disabled = false;
11791    this.selector = selector;
11792    this.settings = mergeOptions(defaults, options);
11793    this.index = this.settings.startAt;
11794  }
11795  /**
11796   * Initializes glide.
11797   *
11798   * @param {Object} extensions Collection of extensions to initialize.
11799   * @return {Glide}
11800   */
11801
11802
11803  _createClass(Glide, [{
11804    key: "mount",
11805    value: function mount$1() {
11806      var extensions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
11807
11808      this._e.emit('mount.before');
11809
11810      if (isObject(extensions)) {
11811        this._c = mount(this, extensions, this._e);
11812      } else {
11813        warn('You need to provide a object on `mount()`');
11814      }
11815
11816      this._e.emit('mount.after');
11817
11818      return this;
11819    }
11820    /**
11821     * Collects an instance `translate` transformers.
11822     *
11823     * @param  {Array} transformers Collection of transformers.
11824     * @return {Void}
11825     */
11826
11827  }, {
11828    key: "mutate",
11829    value: function mutate() {
11830      var transformers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
11831
11832      if (isArray(transformers)) {
11833        this._t = transformers;
11834      } else {
11835        warn('You need to provide a array on `mutate()`');
11836      }
11837
11838      return this;
11839    }
11840    /**
11841     * Updates glide with specified settings.
11842     *
11843     * @param {Object} settings
11844     * @return {Glide}
11845     */
11846
11847  }, {
11848    key: "update",
11849    value: function update() {
11850      var settings = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
11851      this.settings = mergeOptions(this.settings, settings);
11852
11853      if (settings.hasOwnProperty('startAt')) {
11854        this.index = settings.startAt;
11855      }
11856
11857      this._e.emit('update');
11858
11859      return this;
11860    }
11861    /**
11862     * Change slide with specified pattern. A pattern must be in the special format:
11863     * `>` - Move one forward
11864     * `<` - Move one backward
11865     * `={i}` - Go to {i} zero-based slide (eq. '=1', will go to second slide)
11866     * `>>` - Rewinds to end (last slide)
11867     * `<<` - Rewinds to start (first slide)
11868     * `|>` - Move one viewport forward
11869     * `|<` - Move one viewport backward
11870     *
11871     * @param {String} pattern
11872     * @return {Glide}
11873     */
11874
11875  }, {
11876    key: "go",
11877    value: function go(pattern) {
11878      this._c.Run.make(pattern);
11879
11880      return this;
11881    }
11882    /**
11883     * Move track by specified distance.
11884     *
11885     * @param {String} distance
11886     * @return {Glide}
11887     */
11888
11889  }, {
11890    key: "move",
11891    value: function move(distance) {
11892      this._c.Transition.disable();
11893
11894      this._c.Move.make(distance);
11895
11896      return this;
11897    }
11898    /**
11899     * Destroy instance and revert all changes done by this._c.
11900     *
11901     * @return {Glide}
11902     */
11903
11904  }, {
11905    key: "destroy",
11906    value: function destroy() {
11907      this._e.emit('destroy');
11908
11909      return this;
11910    }
11911    /**
11912     * Start instance autoplaying.
11913     *
11914     * @param {Boolean|Number} interval Run autoplaying with passed interval regardless of `autoplay` settings
11915     * @return {Glide}
11916     */
11917
11918  }, {
11919    key: "play",
11920    value: function play() {
11921      var interval = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
11922
11923      if (interval) {
11924        this.settings.autoplay = interval;
11925      }
11926
11927      this._e.emit('play');
11928
11929      return this;
11930    }
11931    /**
11932     * Stop instance autoplaying.
11933     *
11934     * @return {Glide}
11935     */
11936
11937  }, {
11938    key: "pause",
11939    value: function pause() {
11940      this._e.emit('pause');
11941
11942      return this;
11943    }
11944    /**
11945     * Sets glide into a idle status.
11946     *
11947     * @return {Glide}
11948     */
11949
11950  }, {
11951    key: "disable",
11952    value: function disable() {
11953      this.disabled = true;
11954      return this;
11955    }
11956    /**
11957     * Sets glide into a active status.
11958     *
11959     * @return {Glide}
11960     */
11961
11962  }, {
11963    key: "enable",
11964    value: function enable() {
11965      this.disabled = false;
11966      return this;
11967    }
11968    /**
11969     * Adds cuutom event listener with handler.
11970     *
11971     * @param  {String|Array} event
11972     * @param  {Function} handler
11973     * @return {Glide}
11974     */
11975
11976  }, {
11977    key: "on",
11978    value: function on(event, handler) {
11979      this._e.on(event, handler);
11980
11981      return this;
11982    }
11983    /**
11984     * Checks if glide is a precised type.
11985     *
11986     * @param  {String} name
11987     * @return {Boolean}
11988     */
11989
11990  }, {
11991    key: "isType",
11992    value: function isType(name) {
11993      return this.settings.type === name;
11994    }
11995    /**
11996     * Gets value of the core options.
11997     *
11998     * @return {Object}
11999     */
12000
12001  }, {
12002    key: "settings",
12003    get: function get() {
12004      return this._o;
12005    }
12006    /**
12007     * Sets value of the core options.
12008     *
12009     * @param  {Object} o
12010     * @return {Void}
12011     */
12012    ,
12013    set: function set(o) {
12014      if (isObject(o)) {
12015        this._o = o;
12016      } else {
12017        warn('Options must be an `object` instance.');
12018      }
12019    }
12020    /**
12021     * Gets current index of the slider.
12022     *
12023     * @return {Object}
12024     */
12025
12026  }, {
12027    key: "index",
12028    get: function get() {
12029      return this._i;
12030    }
12031    /**
12032     * Sets current index a slider.
12033     *
12034     * @return {Object}
12035     */
12036    ,
12037    set: function set(i) {
12038      this._i = toInt(i);
12039    }
12040    /**
12041     * Gets type name of the slider.
12042     *
12043     * @return {String}
12044     */
12045
12046  }, {
12047    key: "type",
12048    get: function get() {
12049      return this.settings.type;
12050    }
12051    /**
12052     * Gets value of the idle status.
12053     *
12054     * @return {Boolean}
12055     */
12056
12057  }, {
12058    key: "disabled",
12059    get: function get() {
12060      return this._d;
12061    }
12062    /**
12063     * Sets value of the idle status.
12064     *
12065     * @return {Boolean}
12066     */
12067    ,
12068    set: function set(status) {
12069      this._d = !!status;
12070    }
12071  }]);
12072
12073  return Glide;
12074}();
12075
12076function Run (Glide, Components, Events) {
12077  var Run = {
12078    /**
12079     * Initializes autorunning of the glide.
12080     *
12081     * @return {Void}
12082     */
12083    mount: function mount() {
12084      this._o = false;
12085    },
12086
12087    /**
12088     * Makes glides running based on the passed moving schema.
12089     *
12090     * @param {String} move
12091     */
12092    make: function make(move) {
12093      var _this = this;
12094
12095      if (!Glide.disabled) {
12096        !Glide.settings.waitForTransition || Glide.disable();
12097        this.move = move;
12098        Events.emit('run.before', this.move);
12099        this.calculate();
12100        Events.emit('run', this.move);
12101        Components.Transition.after(function () {
12102          if (_this.isStart()) {
12103            Events.emit('run.start', _this.move);
12104          }
12105
12106          if (_this.isEnd()) {
12107            Events.emit('run.end', _this.move);
12108          }
12109
12110          if (_this.isOffset()) {
12111            _this._o = false;
12112            Events.emit('run.offset', _this.move);
12113          }
12114
12115          Events.emit('run.after', _this.move);
12116          Glide.enable();
12117        });
12118      }
12119    },
12120
12121    /**
12122     * Calculates current index based on defined move.
12123     *
12124     * @return {Number|Undefined}
12125     */
12126    calculate: function calculate() {
12127      var move = this.move,
12128          length = this.length;
12129      var steps = move.steps,
12130          direction = move.direction; // By default assume that size of view is equal to one slide
12131
12132      var viewSize = 1; // While direction is `=` we want jump to
12133      // a specified index described in steps.
12134
12135      if (direction === '=') {
12136        // Check if bound is true, 
12137        // as we want to avoid whitespaces.
12138        if (Glide.settings.bound && toInt(steps) > length) {
12139          Glide.index = length;
12140          return;
12141        }
12142
12143        Glide.index = steps;
12144        return;
12145      } // When pattern is equal to `>>` we want
12146      // fast forward to the last slide.
12147
12148
12149      if (direction === '>' && steps === '>') {
12150        Glide.index = length;
12151        return;
12152      } // When pattern is equal to `<<` we want
12153      // fast forward to the first slide.
12154
12155
12156      if (direction === '<' && steps === '<') {
12157        Glide.index = 0;
12158        return;
12159      } // pagination movement
12160
12161
12162      if (direction === '|') {
12163        viewSize = Glide.settings.perView || 1;
12164      } // we are moving forward
12165
12166
12167      if (direction === '>' || direction === '|' && steps === '>') {
12168        var index = calculateForwardIndex(viewSize);
12169
12170        if (index > length) {
12171          this._o = true;
12172        }
12173
12174        Glide.index = normalizeForwardIndex(index, viewSize);
12175        return;
12176      } // we are moving backward
12177
12178
12179      if (direction === '<' || direction === '|' && steps === '<') {
12180        var _index = calculateBackwardIndex(viewSize);
12181
12182        if (_index < 0) {
12183          this._o = true;
12184        }
12185
12186        Glide.index = normalizeBackwardIndex(_index, viewSize);
12187        return;
12188      }
12189
12190      warn("Invalid direction pattern [".concat(direction).concat(steps, "] has been used"));
12191    },
12192
12193    /**
12194     * Checks if we are on the first slide.
12195     *
12196     * @return {Boolean}
12197     */
12198    isStart: function isStart() {
12199      return Glide.index <= 0;
12200    },
12201
12202    /**
12203     * Checks if we are on the last slide.
12204     *
12205     * @return {Boolean}
12206     */
12207    isEnd: function isEnd() {
12208      return Glide.index >= this.length;
12209    },
12210
12211    /**
12212     * Checks if we are making a offset run.
12213     *
12214     * @param {String} direction
12215     * @return {Boolean}
12216     */
12217    isOffset: function isOffset() {
12218      var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;
12219
12220      if (!direction) {
12221        return this._o;
12222      }
12223
12224      if (!this._o) {
12225        return false;
12226      } // did we view to the right?
12227
12228
12229      if (direction === '|>') {
12230        return this.move.direction === '|' && this.move.steps === '>';
12231      } // did we view to the left?
12232
12233
12234      if (direction === '|<') {
12235        return this.move.direction === '|' && this.move.steps === '<';
12236      }
12237
12238      return this.move.direction === direction;
12239    },
12240
12241    /**
12242     * Checks if bound mode is active
12243     *
12244     * @return {Boolean}
12245     */
12246    isBound: function isBound() {
12247      return Glide.isType('slider') && Glide.settings.focusAt !== 'center' && Glide.settings.bound;
12248    }
12249  };
12250  /**
12251   * Returns index value to move forward/to the right
12252   *
12253   * @param viewSize
12254   * @returns {Number}
12255   */
12256
12257  function calculateForwardIndex(viewSize) {
12258    var index = Glide.index;
12259
12260    if (Glide.isType('carousel')) {
12261      return index + viewSize;
12262    }
12263
12264    return index + (viewSize - index % viewSize);
12265  }
12266  /**
12267   * Normalizes the given forward index based on glide settings, preventing it to exceed certain boundaries
12268   *
12269   * @param index
12270   * @param length
12271   * @param viewSize
12272   * @returns {Number}
12273   */
12274
12275
12276  function normalizeForwardIndex(index, viewSize) {
12277    var length = Run.length;
12278
12279    if (index <= length) {
12280      return index;
12281    }
12282
12283    if (Glide.isType('carousel')) {
12284      return index - (length + 1);
12285    }
12286
12287    if (Glide.settings.rewind) {
12288      // bound does funny things with the length, therefor we have to be certain
12289      // that we are on the last possible index value given by bound
12290      if (Run.isBound() && !Run.isEnd()) {
12291        return length;
12292      }
12293
12294      return 0;
12295    }
12296
12297    if (Run.isBound()) {
12298      return length;
12299    }
12300
12301    return Math.floor(length / viewSize) * viewSize;
12302  }
12303  /**
12304   * Calculates index value to move backward/to the left
12305   *
12306   * @param viewSize
12307   * @returns {Number}
12308   */
12309
12310
12311  function calculateBackwardIndex(viewSize) {
12312    var index = Glide.index;
12313
12314    if (Glide.isType('carousel')) {
12315      return index - viewSize;
12316    } // ensure our back navigation results in the same index as a forward navigation
12317    // to experience a homogeneous paging
12318
12319
12320    var view = Math.ceil(index / viewSize);
12321    return (view - 1) * viewSize;
12322  }
12323  /**
12324   * Normalizes the given backward index based on glide settings, preventing it to exceed certain boundaries
12325   *
12326   * @param index
12327   * @param length
12328   * @param viewSize
12329   * @returns {*}
12330   */
12331
12332
12333  function normalizeBackwardIndex(index, viewSize) {
12334    var length = Run.length;
12335
12336    if (index >= 0) {
12337      return index;
12338    }
12339
12340    if (Glide.isType('carousel')) {
12341      return index + (length + 1);
12342    }
12343
12344    if (Glide.settings.rewind) {
12345      // bound does funny things with the length, therefor we have to be certain
12346      // that we are on first possible index value before we to rewind to the length given by bound
12347      if (Run.isBound() && Run.isStart()) {
12348        return length;
12349      }
12350
12351      return Math.floor(length / viewSize) * viewSize;
12352    }
12353
12354    return 0;
12355  }
12356
12357  define(Run, 'move', {
12358    /**
12359     * Gets value of the move schema.
12360     *
12361     * @returns {Object}
12362     */
12363    get: function get() {
12364      return this._m;
12365    },
12366
12367    /**
12368     * Sets value of the move schema.
12369     *
12370     * @returns {Object}
12371     */
12372    set: function set(value) {
12373      var step = value.substr(1);
12374      this._m = {
12375        direction: value.substr(0, 1),
12376        steps: step ? toInt(step) ? toInt(step) : step : 0
12377      };
12378    }
12379  });
12380  define(Run, 'length', {
12381    /**
12382     * Gets value of the running distance based
12383     * on zero-indexing number of slides.
12384     *
12385     * @return {Number}
12386     */
12387    get: function get() {
12388      var settings = Glide.settings;
12389      var length = Components.Html.slides.length; // If the `bound` option is active, a maximum running distance should be
12390      // reduced by `perView` and `focusAt` settings. Running distance
12391      // should end before creating an empty space after instance.
12392
12393      if (this.isBound()) {
12394        return length - 1 - (toInt(settings.perView) - 1) + toInt(settings.focusAt);
12395      }
12396
12397      return length - 1;
12398    }
12399  });
12400  define(Run, 'offset', {
12401    /**
12402     * Gets status of the offsetting flag.
12403     *
12404     * @return {Boolean}
12405     */
12406    get: function get() {
12407      return this._o;
12408    }
12409  });
12410  return Run;
12411}
12412
12413/**
12414 * Returns a current time.
12415 *
12416 * @return {Number}
12417 */
12418function now() {
12419  return new Date().getTime();
12420}
12421
12422/**
12423 * Returns a function, that, when invoked, will only be triggered
12424 * at most once during a given window of time.
12425 *
12426 * @param {Function} func
12427 * @param {Number} wait
12428 * @param {Object=} options
12429 * @return {Function}
12430 *
12431 * @see https://github.com/jashkenas/underscore
12432 */
12433
12434function throttle(func, wait, options) {
12435  var timeout, context, args, result;
12436  var previous = 0;
12437  if (!options) options = {};
12438
12439  var later = function later() {
12440    previous = options.leading === false ? 0 : now();
12441    timeout = null;
12442    result = func.apply(context, args);
12443    if (!timeout) context = args = null;
12444  };
12445
12446  var throttled = function throttled() {
12447    var at = now();
12448    if (!previous && options.leading === false) previous = at;
12449    var remaining = wait - (at - previous);
12450    context = this;
12451    args = arguments;
12452
12453    if (remaining <= 0 || remaining > wait) {
12454      if (timeout) {
12455        clearTimeout(timeout);
12456        timeout = null;
12457      }
12458
12459      previous = at;
12460      result = func.apply(context, args);
12461      if (!timeout) context = args = null;
12462    } else if (!timeout && options.trailing !== false) {
12463      timeout = setTimeout(later, remaining);
12464    }
12465
12466    return result;
12467  };
12468
12469  throttled.cancel = function () {
12470    clearTimeout(timeout);
12471    previous = 0;
12472    timeout = context = args = null;
12473  };
12474
12475  return throttled;
12476}
12477
12478var MARGIN_TYPE = {
12479  ltr: ['marginLeft', 'marginRight'],
12480  rtl: ['marginRight', 'marginLeft']
12481};
12482function Gaps (Glide, Components, Events) {
12483  var Gaps = {
12484    /**
12485     * Applies gaps between slides. First and last
12486     * slides do not receive it's edge margins.
12487     *
12488     * @param {HTMLCollection} slides
12489     * @return {Void}
12490     */
12491    apply: function apply(slides) {
12492      for (var i = 0, len = slides.length; i < len; i++) {
12493        var style = slides[i].style;
12494        var direction = Components.Direction.value;
12495
12496        if (i !== 0) {
12497          style[MARGIN_TYPE[direction][0]] = "".concat(this.value / 2, "px");
12498        } else {
12499          style[MARGIN_TYPE[direction][0]] = '';
12500        }
12501
12502        if (i !== slides.length - 1) {
12503          style[MARGIN_TYPE[direction][1]] = "".concat(this.value / 2, "px");
12504        } else {
12505          style[MARGIN_TYPE[direction][1]] = '';
12506        }
12507      }
12508    },
12509
12510    /**
12511     * Removes gaps from the slides.
12512     *
12513     * @param {HTMLCollection} slides
12514     * @returns {Void}
12515    */
12516    remove: function remove(slides) {
12517      for (var i = 0, len = slides.length; i < len; i++) {
12518        var style = slides[i].style;
12519        style.marginLeft = '';
12520        style.marginRight = '';
12521      }
12522    }
12523  };
12524  define(Gaps, 'value', {
12525    /**
12526     * Gets value of the gap.
12527     *
12528     * @returns {Number}
12529     */
12530    get: function get() {
12531      return toInt(Glide.settings.gap);
12532    }
12533  });
12534  define(Gaps, 'grow', {
12535    /**
12536     * Gets additional dimensions value caused by gaps.
12537     * Used to increase width of the slides wrapper.
12538     *
12539     * @returns {Number}
12540     */
12541    get: function get() {
12542      return Gaps.value * Components.Sizes.length;
12543    }
12544  });
12545  define(Gaps, 'reductor', {
12546    /**
12547     * Gets reduction value caused by gaps.
12548     * Used to subtract width of the slides.
12549     *
12550     * @returns {Number}
12551     */
12552    get: function get() {
12553      var perView = Glide.settings.perView;
12554      return Gaps.value * (perView - 1) / perView;
12555    }
12556  });
12557  /**
12558   * Apply calculated gaps:
12559   * - after building, so slides (including clones) will receive proper margins
12560   * - on updating via API, to recalculate gaps with new options
12561   */
12562
12563  Events.on(['build.after', 'update'], throttle(function () {
12564    Gaps.apply(Components.Html.wrapper.children);
12565  }, 30));
12566  /**
12567   * Remove gaps:
12568   * - on destroying to bring markup to its inital state
12569   */
12570
12571  Events.on('destroy', function () {
12572    Gaps.remove(Components.Html.wrapper.children);
12573  });
12574  return Gaps;
12575}
12576
12577/**
12578 * Finds siblings nodes of the passed node.
12579 *
12580 * @param  {Element} node
12581 * @return {Array}
12582 */
12583function siblings(node) {
12584  if (node && node.parentNode) {
12585    var n = node.parentNode.firstChild;
12586    var matched = [];
12587
12588    for (; n; n = n.nextSibling) {
12589      if (n.nodeType === 1 && n !== node) {
12590        matched.push(n);
12591      }
12592    }
12593
12594    return matched;
12595  }
12596
12597  return [];
12598}
12599/**
12600 * Checks if passed node exist and is a valid element.
12601 *
12602 * @param  {Element} node
12603 * @return {Boolean}
12604 */
12605
12606function exist(node) {
12607  if (node && node instanceof window.HTMLElement) {
12608    return true;
12609  }
12610
12611  return false;
12612}
12613/**
12614 * Coerces a NodeList to an Array.
12615 *
12616 * @param  {NodeList} nodeList
12617 * @return {Array}
12618 */
12619
12620function toArray(nodeList) {
12621  return Array.prototype.slice.call(nodeList);
12622}
12623
12624var TRACK_SELECTOR = '[data-glide-el="track"]';
12625function Html (Glide, Components, Events) {
12626  var Html = {
12627    /**
12628     * Setup slider HTML nodes.
12629     *
12630     * @param {Glide} glide
12631     */
12632    mount: function mount() {
12633      this.root = Glide.selector;
12634      this.track = this.root.querySelector(TRACK_SELECTOR);
12635      this.collectSlides();
12636    },
12637
12638    /**
12639     * Collect slides
12640     */
12641    collectSlides: function collectSlides() {
12642      this.slides = toArray(this.wrapper.children).filter(function (slide) {
12643        return !slide.classList.contains(Glide.settings.classes.slide.clone);
12644      });
12645    }
12646  };
12647  define(Html, 'root', {
12648    /**
12649     * Gets node of the glide main element.
12650     *
12651     * @return {Object}
12652     */
12653    get: function get() {
12654      return Html._r;
12655    },
12656
12657    /**
12658     * Sets node of the glide main element.
12659     *
12660     * @return {Object}
12661     */
12662    set: function set(r) {
12663      if (isString(r)) {
12664        r = document.querySelector(r);
12665      }
12666
12667      if (exist(r)) {
12668        Html._r = r;
12669      } else {
12670        warn('Root element must be a existing Html node');
12671      }
12672    }
12673  });
12674  define(Html, 'track', {
12675    /**
12676     * Gets node of the glide track with slides.
12677     *
12678     * @return {Object}
12679     */
12680    get: function get() {
12681      return Html._t;
12682    },
12683
12684    /**
12685     * Sets node of the glide track with slides.
12686     *
12687     * @return {Object}
12688     */
12689    set: function set(t) {
12690      if (exist(t)) {
12691        Html._t = t;
12692      } else {
12693        warn("Could not find track element. Please use ".concat(TRACK_SELECTOR, " attribute."));
12694      }
12695    }
12696  });
12697  define(Html, 'wrapper', {
12698    /**
12699     * Gets node of the slides wrapper.
12700     *
12701     * @return {Object}
12702     */
12703    get: function get() {
12704      return Html.track.children[0];
12705    }
12706  });
12707  /**
12708   * Add/remove/reorder dynamic slides
12709   */
12710
12711  Events.on('update', function () {
12712    Html.collectSlides();
12713  });
12714  return Html;
12715}
12716
12717function Peek (Glide, Components, Events) {
12718  var Peek = {
12719    /**
12720     * Setups how much to peek based on settings.
12721     *
12722     * @return {Void}
12723     */
12724    mount: function mount() {
12725      this.value = Glide.settings.peek;
12726    }
12727  };
12728  define(Peek, 'value', {
12729    /**
12730     * Gets value of the peek.
12731     *
12732     * @returns {Number|Object}
12733     */
12734    get: function get() {
12735      return Peek._v;
12736    },
12737
12738    /**
12739     * Sets value of the peek.
12740     *
12741     * @param {Number|Object} value
12742     * @return {Void}
12743     */
12744    set: function set(value) {
12745      if (isObject(value)) {
12746        value.before = toInt(value.before);
12747        value.after = toInt(value.after);
12748      } else {
12749        value = toInt(value);
12750      }
12751
12752      Peek._v = value;
12753    }
12754  });
12755  define(Peek, 'reductor', {
12756    /**
12757     * Gets reduction value caused by peek.
12758     *
12759     * @returns {Number}
12760     */
12761    get: function get() {
12762      var value = Peek.value;
12763      var perView = Glide.settings.perView;
12764
12765      if (isObject(value)) {
12766        return value.before / perView + value.after / perView;
12767      }
12768
12769      return value * 2 / perView;
12770    }
12771  });
12772  /**
12773   * Recalculate peeking sizes on:
12774   * - when resizing window to update to proper percents
12775   */
12776
12777  Events.on(['resize', 'update'], function () {
12778    Peek.mount();
12779  });
12780  return Peek;
12781}
12782
12783function Move (Glide, Components, Events) {
12784  var Move = {
12785    /**
12786     * Constructs move component.
12787     *
12788     * @returns {Void}
12789     */
12790    mount: function mount() {
12791      this._o = 0;
12792    },
12793
12794    /**
12795     * Calculates a movement value based on passed offset and currently active index.
12796     *
12797     * @param  {Number} offset
12798     * @return {Void}
12799     */
12800    make: function make() {
12801      var _this = this;
12802
12803      var offset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
12804      this.offset = offset;
12805      Events.emit('move', {
12806        movement: this.value
12807      });
12808      Components.Transition.after(function () {
12809        Events.emit('move.after', {
12810          movement: _this.value
12811        });
12812      });
12813    }
12814  };
12815  define(Move, 'offset', {
12816    /**
12817     * Gets an offset value used to modify current translate.
12818     *
12819     * @return {Object}
12820     */
12821    get: function get() {
12822      return Move._o;
12823    },
12824
12825    /**
12826     * Sets an offset value used to modify current translate.
12827     *
12828     * @return {Object}
12829     */
12830    set: function set(value) {
12831      Move._o = !isUndefined(value) ? toInt(value) : 0;
12832    }
12833  });
12834  define(Move, 'translate', {
12835    /**
12836     * Gets a raw movement value.
12837     *
12838     * @return {Number}
12839     */
12840    get: function get() {
12841      return Components.Sizes.slideWidth * Glide.index;
12842    }
12843  });
12844  define(Move, 'value', {
12845    /**
12846     * Gets an actual movement value corrected by offset.
12847     *
12848     * @return {Number}
12849     */
12850    get: function get() {
12851      var offset = this.offset;
12852      var translate = this.translate;
12853
12854      if (Components.Direction.is('rtl')) {
12855        return translate + offset;
12856      }
12857
12858      return translate - offset;
12859    }
12860  });
12861  /**
12862   * Make movement to proper slide on:
12863   * - before build, so glide will start at `startAt` index
12864   * - on each standard run to move to newly calculated index
12865   */
12866
12867  Events.on(['build.before', 'run'], function () {
12868    Move.make();
12869  });
12870  return Move;
12871}
12872
12873function Sizes (Glide, Components, Events) {
12874  var Sizes = {
12875    /**
12876     * Setups dimensions of slides.
12877     *
12878     * @return {Void}
12879     */
12880    setupSlides: function setupSlides() {
12881      var width = "".concat(this.slideWidth, "px");
12882      var slides = Components.Html.slides;
12883
12884      for (var i = 0; i < slides.length; i++) {
12885        slides[i].style.width = width;
12886      }
12887    },
12888
12889    /**
12890     * Setups dimensions of slides wrapper.
12891     *
12892     * @return {Void}
12893     */
12894    setupWrapper: function setupWrapper() {
12895      Components.Html.wrapper.style.width = "".concat(this.wrapperSize, "px");
12896    },
12897
12898    /**
12899     * Removes applied styles from HTML elements.
12900     *
12901     * @returns {Void}
12902     */
12903    remove: function remove() {
12904      var slides = Components.Html.slides;
12905
12906      for (var i = 0; i < slides.length; i++) {
12907        slides[i].style.width = '';
12908      }
12909
12910      Components.Html.wrapper.style.width = '';
12911    }
12912  };
12913  define(Sizes, 'length', {
12914    /**
12915     * Gets count number of the slides.
12916     *
12917     * @return {Number}
12918     */
12919    get: function get() {
12920      return Components.Html.slides.length;
12921    }
12922  });
12923  define(Sizes, 'width', {
12924    /**
12925     * Gets width value of the slider (visible area).
12926     *
12927     * @return {Number}
12928     */
12929    get: function get() {
12930      return Components.Html.track.offsetWidth;
12931    }
12932  });
12933  define(Sizes, 'wrapperSize', {
12934    /**
12935     * Gets size of the slides wrapper.
12936     *
12937     * @return {Number}
12938     */
12939    get: function get() {
12940      return Sizes.slideWidth * Sizes.length + Components.Gaps.grow + Components.Clones.grow;
12941    }
12942  });
12943  define(Sizes, 'slideWidth', {
12944    /**
12945     * Gets width value of a single slide.
12946     *
12947     * @return {Number}
12948     */
12949    get: function get() {
12950      return Sizes.width / Glide.settings.perView - Components.Peek.reductor - Components.Gaps.reductor;
12951    }
12952  });
12953  /**
12954   * Apply calculated glide's dimensions:
12955   * - before building, so other dimensions (e.g. translate) will be calculated propertly
12956   * - when resizing window to recalculate sildes dimensions
12957   * - on updating via API, to calculate dimensions based on new options
12958   */
12959
12960  Events.on(['build.before', 'resize', 'update'], function () {
12961    Sizes.setupSlides();
12962    Sizes.setupWrapper();
12963  });
12964  /**
12965   * Remove calculated glide's dimensions:
12966   * - on destoting to bring markup to its inital state
12967   */
12968
12969  Events.on('destroy', function () {
12970    Sizes.remove();
12971  });
12972  return Sizes;
12973}
12974
12975function Build (Glide, Components, Events) {
12976  var Build = {
12977    /**
12978     * Init glide building. Adds classes, sets
12979     * dimensions and setups initial state.
12980     *
12981     * @return {Void}
12982     */
12983    mount: function mount() {
12984      Events.emit('build.before');
12985      this.typeClass();
12986      this.activeClass();
12987      Events.emit('build.after');
12988    },
12989
12990    /**
12991     * Adds `type` class to the glide element.
12992     *
12993     * @return {Void}
12994     */
12995    typeClass: function typeClass() {
12996      Components.Html.root.classList.add(Glide.settings.classes.type[Glide.settings.type]);
12997    },
12998
12999    /**
13000     * Sets active class to current slide.
13001     *
13002     * @return {Void}
13003     */
13004    activeClass: function activeClass() {
13005      var classes = Glide.settings.classes;
13006      var slide = Components.Html.slides[Glide.index];
13007
13008      if (slide) {
13009        slide.classList.add(classes.slide.active);
13010        siblings(slide).forEach(function (sibling) {
13011          sibling.classList.remove(classes.slide.active);
13012        });
13013      }
13014    },
13015
13016    /**
13017     * Removes HTML classes applied at building.
13018     *
13019     * @return {Void}
13020     */
13021    removeClasses: function removeClasses() {
13022      var _Glide$settings$class = Glide.settings.classes,
13023          type = _Glide$settings$class.type,
13024          slide = _Glide$settings$class.slide;
13025      Components.Html.root.classList.remove(type[Glide.settings.type]);
13026      Components.Html.slides.forEach(function (sibling) {
13027        sibling.classList.remove(slide.active);
13028      });
13029    }
13030  };
13031  /**
13032   * Clear building classes:
13033   * - on destroying to bring HTML to its initial state
13034   * - on updating to remove classes before remounting component
13035   */
13036
13037  Events.on(['destroy', 'update'], function () {
13038    Build.removeClasses();
13039  });
13040  /**
13041   * Remount component:
13042   * - on resizing of the window to calculate new dimensions
13043   * - on updating settings via API
13044   */
13045
13046  Events.on(['resize', 'update'], function () {
13047    Build.mount();
13048  });
13049  /**
13050   * Swap active class of current slide:
13051   * - after each move to the new index
13052   */
13053
13054  Events.on('move.after', function () {
13055    Build.activeClass();
13056  });
13057  return Build;
13058}
13059
13060function Clones (Glide, Components, Events) {
13061  var Clones = {
13062    /**
13063     * Create pattern map and collect slides to be cloned.
13064     */
13065    mount: function mount() {
13066      this.items = [];
13067
13068      if (Glide.isType('carousel')) {
13069        this.items = this.collect();
13070      }
13071    },
13072
13073    /**
13074     * Collect clones with pattern.
13075     *
13076     * @return {[]}
13077     */
13078    collect: function collect() {
13079      var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
13080      var slides = Components.Html.slides;
13081      var _Glide$settings = Glide.settings,
13082          perView = _Glide$settings.perView,
13083          classes = _Glide$settings.classes,
13084          cloningRatio = _Glide$settings.cloningRatio;
13085
13086      if (slides.length !== 0) {
13087        var peekIncrementer = +!!Glide.settings.peek;
13088        var cloneCount = perView + peekIncrementer + Math.round(perView / 2);
13089        var append = slides.slice(0, cloneCount).reverse();
13090        var prepend = slides.slice(cloneCount * -1);
13091
13092        for (var r = 0; r < Math.max(cloningRatio, Math.floor(perView / slides.length)); r++) {
13093          for (var i = 0; i < append.length; i++) {
13094            var clone = append[i].cloneNode(true);
13095            clone.classList.add(classes.slide.clone);
13096            items.push(clone);
13097          }
13098
13099          for (var _i = 0; _i < prepend.length; _i++) {
13100            var _clone = prepend[_i].cloneNode(true);
13101
13102            _clone.classList.add(classes.slide.clone);
13103
13104            items.unshift(_clone);
13105          }
13106        }
13107      }
13108
13109      return items;
13110    },
13111
13112    /**
13113     * Append cloned slides with generated pattern.
13114     *
13115     * @return {Void}
13116     */
13117    append: function append() {
13118      var items = this.items;
13119      var _Components$Html = Components.Html,
13120          wrapper = _Components$Html.wrapper,
13121          slides = _Components$Html.slides;
13122      var half = Math.floor(items.length / 2);
13123      var prepend = items.slice(0, half).reverse();
13124      var append = items.slice(half * -1).reverse();
13125      var width = "".concat(Components.Sizes.slideWidth, "px");
13126
13127      for (var i = 0; i < append.length; i++) {
13128        wrapper.appendChild(append[i]);
13129      }
13130
13131      for (var _i2 = 0; _i2 < prepend.length; _i2++) {
13132        wrapper.insertBefore(prepend[_i2], slides[0]);
13133      }
13134
13135      for (var _i3 = 0; _i3 < items.length; _i3++) {
13136        items[_i3].style.width = width;
13137      }
13138    },
13139
13140    /**
13141     * Remove all cloned slides.
13142     *
13143     * @return {Void}
13144     */
13145    remove: function remove() {
13146      var items = this.items;
13147
13148      for (var i = 0; i < items.length; i++) {
13149        Components.Html.wrapper.removeChild(items[i]);
13150      }
13151    }
13152  };
13153  define(Clones, 'grow', {
13154    /**
13155     * Gets additional dimensions value caused by clones.
13156     *
13157     * @return {Number}
13158     */
13159    get: function get() {
13160      return (Components.Sizes.slideWidth + Components.Gaps.value) * Clones.items.length;
13161    }
13162  });
13163  /**
13164   * Append additional slide's clones:
13165   * - while glide's type is `carousel`
13166   */
13167
13168  Events.on('update', function () {
13169    Clones.remove();
13170    Clones.mount();
13171    Clones.append();
13172  });
13173  /**
13174   * Append additional slide's clones:
13175   * - while glide's type is `carousel`
13176   */
13177
13178  Events.on('build.before', function () {
13179    if (Glide.isType('carousel')) {
13180      Clones.append();
13181    }
13182  });
13183  /**
13184   * Remove clones HTMLElements:
13185   * - on destroying, to bring HTML to its initial state
13186   */
13187
13188  Events.on('destroy', function () {
13189    Clones.remove();
13190  });
13191  return Clones;
13192}
13193
13194var EventsBinder = /*#__PURE__*/function () {
13195  /**
13196   * Construct a EventsBinder instance.
13197   */
13198  function EventsBinder() {
13199    var listeners = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
13200
13201    _classCallCheck(this, EventsBinder);
13202
13203    this.listeners = listeners;
13204  }
13205  /**
13206   * Adds events listeners to arrows HTML elements.
13207   *
13208   * @param  {String|Array} events
13209   * @param  {Element|Window|Document} el
13210   * @param  {Function} closure
13211   * @param  {Boolean|Object} capture
13212   * @return {Void}
13213   */
13214
13215
13216  _createClass(EventsBinder, [{
13217    key: "on",
13218    value: function on(events, el, closure) {
13219      var capture = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
13220
13221      if (isString(events)) {
13222        events = [events];
13223      }
13224
13225      for (var i = 0; i < events.length; i++) {
13226        this.listeners[events[i]] = closure;
13227        el.addEventListener(events[i], this.listeners[events[i]], capture);
13228      }
13229    }
13230    /**
13231     * Removes event listeners from arrows HTML elements.
13232     *
13233     * @param  {String|Array} events
13234     * @param  {Element|Window|Document} el
13235     * @param  {Boolean|Object} capture
13236     * @return {Void}
13237     */
13238
13239  }, {
13240    key: "off",
13241    value: function off(events, el) {
13242      var capture = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
13243
13244      if (isString(events)) {
13245        events = [events];
13246      }
13247
13248      for (var i = 0; i < events.length; i++) {
13249        el.removeEventListener(events[i], this.listeners[events[i]], capture);
13250      }
13251    }
13252    /**
13253     * Destroy collected listeners.
13254     *
13255     * @returns {Void}
13256     */
13257
13258  }, {
13259    key: "destroy",
13260    value: function destroy() {
13261      delete this.listeners;
13262    }
13263  }]);
13264
13265  return EventsBinder;
13266}();
13267
13268function Resize (Glide, Components, Events) {
13269  /**
13270   * Instance of the binder for DOM Events.
13271   *
13272   * @type {EventsBinder}
13273   */
13274  var Binder = new EventsBinder();
13275  var Resize = {
13276    /**
13277     * Initializes window bindings.
13278     */
13279    mount: function mount() {
13280      this.bind();
13281    },
13282
13283    /**
13284     * Binds `rezsize` listener to the window.
13285     * It's a costly event, so we are debouncing it.
13286     *
13287     * @return {Void}
13288     */
13289    bind: function bind() {
13290      Binder.on('resize', window, throttle(function () {
13291        Events.emit('resize');
13292      }, Glide.settings.throttle));
13293    },
13294
13295    /**
13296     * Unbinds listeners from the window.
13297     *
13298     * @return {Void}
13299     */
13300    unbind: function unbind() {
13301      Binder.off('resize', window);
13302    }
13303  };
13304  /**
13305   * Remove bindings from window:
13306   * - on destroying, to remove added EventListener
13307   */
13308
13309  Events.on('destroy', function () {
13310    Resize.unbind();
13311    Binder.destroy();
13312  });
13313  return Resize;
13314}
13315
13316var VALID_DIRECTIONS = ['ltr', 'rtl'];
13317var FLIPED_MOVEMENTS = {
13318  '>': '<',
13319  '<': '>',
13320  '=': '='
13321};
13322function Direction (Glide, Components, Events) {
13323  var Direction = {
13324    /**
13325     * Setups gap value based on settings.
13326     *
13327     * @return {Void}
13328     */
13329    mount: function mount() {
13330      this.value = Glide.settings.direction;
13331    },
13332
13333    /**
13334     * Resolves pattern based on direction value
13335     *
13336     * @param {String} pattern
13337     * @returns {String}
13338     */
13339    resolve: function resolve(pattern) {
13340      var token = pattern.slice(0, 1);
13341
13342      if (this.is('rtl')) {
13343        return pattern.split(token).join(FLIPED_MOVEMENTS[token]);
13344      }
13345
13346      return pattern;
13347    },
13348
13349    /**
13350     * Checks value of direction mode.
13351     *
13352     * @param {String} direction
13353     * @returns {Boolean}
13354     */
13355    is: function is(direction) {
13356      return this.value === direction;
13357    },
13358
13359    /**
13360     * Applies direction class to the root HTML element.
13361     *
13362     * @return {Void}
13363     */
13364    addClass: function addClass() {
13365      Components.Html.root.classList.add(Glide.settings.classes.direction[this.value]);
13366    },
13367
13368    /**
13369     * Removes direction class from the root HTML element.
13370     *
13371     * @return {Void}
13372     */
13373    removeClass: function removeClass() {
13374      Components.Html.root.classList.remove(Glide.settings.classes.direction[this.value]);
13375    }
13376  };
13377  define(Direction, 'value', {
13378    /**
13379     * Gets value of the direction.
13380     *
13381     * @returns {Number}
13382     */
13383    get: function get() {
13384      return Direction._v;
13385    },
13386
13387    /**
13388     * Sets value of the direction.
13389     *
13390     * @param {String} value
13391     * @return {Void}
13392     */
13393    set: function set(value) {
13394      if (VALID_DIRECTIONS.indexOf(value) > -1) {
13395        Direction._v = value;
13396      } else {
13397        warn('Direction value must be `ltr` or `rtl`');
13398      }
13399    }
13400  });
13401  /**
13402   * Clear direction class:
13403   * - on destroy to bring HTML to its initial state
13404   * - on update to remove class before reappling bellow
13405   */
13406
13407  Events.on(['destroy', 'update'], function () {
13408    Direction.removeClass();
13409  });
13410  /**
13411   * Remount component:
13412   * - on update to reflect changes in direction value
13413   */
13414
13415  Events.on('update', function () {
13416    Direction.mount();
13417  });
13418  /**
13419   * Apply direction class:
13420   * - before building to apply class for the first time
13421   * - on updating to reapply direction class that may changed
13422   */
13423
13424  Events.on(['build.before', 'update'], function () {
13425    Direction.addClass();
13426  });
13427  return Direction;
13428}
13429
13430/**
13431 * Reflects value of glide movement.
13432 *
13433 * @param  {Object} Glide
13434 * @param  {Object} Components
13435 * @return {Object}
13436 */
13437function Rtl (Glide, Components) {
13438  return {
13439    /**
13440     * Negates the passed translate if glide is in RTL option.
13441     *
13442     * @param  {Number} translate
13443     * @return {Number}
13444     */
13445    modify: function modify(translate) {
13446      if (Components.Direction.is('rtl')) {
13447        return -translate;
13448      }
13449
13450      return translate;
13451    }
13452  };
13453}
13454
13455/**
13456 * Updates glide movement with a `gap` settings.
13457 *
13458 * @param  {Object} Glide
13459 * @param  {Object} Components
13460 * @return {Object}
13461 */
13462function Gap (Glide, Components) {
13463  return {
13464    /**
13465     * Modifies passed translate value with number in the `gap` settings.
13466     *
13467     * @param  {Number} translate
13468     * @return {Number}
13469     */
13470    modify: function modify(translate) {
13471      var multiplier = Math.floor(translate / Components.Sizes.slideWidth);
13472      return translate + Components.Gaps.value * multiplier;
13473    }
13474  };
13475}
13476
13477/**
13478 * Updates glide movement with width of additional clones width.
13479 *
13480 * @param  {Object} Glide
13481 * @param  {Object} Components
13482 * @return {Object}
13483 */
13484function Grow (Glide, Components) {
13485  return {
13486    /**
13487     * Adds to the passed translate width of the half of clones.
13488     *
13489     * @param  {Number} translate
13490     * @return {Number}
13491     */
13492    modify: function modify(translate) {
13493      return translate + Components.Clones.grow / 2;
13494    }
13495  };
13496}
13497
13498/**
13499 * Updates glide movement with a `peek` settings.
13500 *
13501 * @param  {Object} Glide
13502 * @param  {Object} Components
13503 * @return {Object}
13504 */
13505
13506function Peeking (Glide, Components) {
13507  return {
13508    /**
13509     * Modifies passed translate value with a `peek` setting.
13510     *
13511     * @param  {Number} translate
13512     * @return {Number}
13513     */
13514    modify: function modify(translate) {
13515      if (Glide.settings.focusAt >= 0) {
13516        var peek = Components.Peek.value;
13517
13518        if (isObject(peek)) {
13519          return translate - peek.before;
13520        }
13521
13522        return translate - peek;
13523      }
13524
13525      return translate;
13526    }
13527  };
13528}
13529
13530/**
13531 * Updates glide movement with a `focusAt` settings.
13532 *
13533 * @param  {Object} Glide
13534 * @param  {Object} Components
13535 * @return {Object}
13536 */
13537function Focusing (Glide, Components) {
13538  return {
13539    /**
13540     * Modifies passed translate value with index in the `focusAt` setting.
13541     *
13542     * @param  {Number} translate
13543     * @return {Number}
13544     */
13545    modify: function modify(translate) {
13546      var gap = Components.Gaps.value;
13547      var width = Components.Sizes.width;
13548      var focusAt = Glide.settings.focusAt;
13549      var slideWidth = Components.Sizes.slideWidth;
13550
13551      if (focusAt === 'center') {
13552        return translate - (width / 2 - slideWidth / 2);
13553      }
13554
13555      return translate - slideWidth * focusAt - gap * focusAt;
13556    }
13557  };
13558}
13559
13560/**
13561 * Applies diffrent transformers on translate value.
13562 *
13563 * @param  {Object} Glide
13564 * @param  {Object} Components
13565 * @return {Object}
13566 */
13567
13568function mutator (Glide, Components, Events) {
13569  /**
13570   * Merge instance transformers with collection of default transformers.
13571   * It's important that the Rtl component be last on the list,
13572   * so it reflects all previous transformations.
13573   *
13574   * @type {Array}
13575   */
13576  var TRANSFORMERS = [Gap, Grow, Peeking, Focusing].concat(Glide._t, [Rtl]);
13577  return {
13578    /**
13579     * Piplines translate value with registered transformers.
13580     *
13581     * @param  {Number} translate
13582     * @return {Number}
13583     */
13584    mutate: function mutate(translate) {
13585      for (var i = 0; i < TRANSFORMERS.length; i++) {
13586        var transformer = TRANSFORMERS[i];
13587
13588        if (isFunction(transformer) && isFunction(transformer().modify)) {
13589          translate = transformer(Glide, Components, Events).modify(translate);
13590        } else {
13591          warn('Transformer should be a function that returns an object with `modify()` method');
13592        }
13593      }
13594
13595      return translate;
13596    }
13597  };
13598}
13599
13600function Translate (Glide, Components, Events) {
13601  var Translate = {
13602    /**
13603     * Sets value of translate on HTML element.
13604     *
13605     * @param {Number} value
13606     * @return {Void}
13607     */
13608    set: function set(value) {
13609      var transform = mutator(Glide, Components).mutate(value);
13610      var translate3d = "translate3d(".concat(-1 * transform, "px, 0px, 0px)");
13611      Components.Html.wrapper.style.mozTransform = translate3d; // needed for supported Firefox 10-15
13612
13613      Components.Html.wrapper.style.webkitTransform = translate3d; // needed for supported Chrome 10-35, Safari 5.1-8, and Opera 15-22
13614
13615      Components.Html.wrapper.style.transform = translate3d;
13616    },
13617
13618    /**
13619     * Removes value of translate from HTML element.
13620     *
13621     * @return {Void}
13622     */
13623    remove: function remove() {
13624      Components.Html.wrapper.style.transform = '';
13625    },
13626
13627    /**
13628     * @return {number}
13629     */
13630    getStartIndex: function getStartIndex() {
13631      var length = Components.Sizes.length;
13632      var index = Glide.index;
13633      var perView = Glide.settings.perView;
13634
13635      if (Components.Run.isOffset('>') || Components.Run.isOffset('|>')) {
13636        return length + (index - perView);
13637      } // "modulo length" converts an index that equals length to zero
13638
13639
13640      return (index + perView) % length;
13641    },
13642
13643    /**
13644     * @return {number}
13645     */
13646    getTravelDistance: function getTravelDistance() {
13647      var travelDistance = Components.Sizes.slideWidth * Glide.settings.perView;
13648
13649      if (Components.Run.isOffset('>') || Components.Run.isOffset('|>')) {
13650        // reverse travel distance so that we don't have to change subtract operations
13651        return travelDistance * -1;
13652      }
13653
13654      return travelDistance;
13655    }
13656  };
13657  /**
13658   * Set new translate value:
13659   * - on move to reflect index change
13660   * - on updating via API to reflect possible changes in options
13661   */
13662
13663  Events.on('move', function (context) {
13664    if (!Glide.isType('carousel') || !Components.Run.isOffset()) {
13665      return Translate.set(context.movement);
13666    }
13667
13668    Components.Transition.after(function () {
13669      Events.emit('translate.jump');
13670      Translate.set(Components.Sizes.slideWidth * Glide.index);
13671    });
13672    var startWidth = Components.Sizes.slideWidth * Components.Translate.getStartIndex();
13673    return Translate.set(startWidth - Components.Translate.getTravelDistance());
13674  });
13675  /**
13676   * Remove translate:
13677   * - on destroying to bring markup to its inital state
13678   */
13679
13680  Events.on('destroy', function () {
13681    Translate.remove();
13682  });
13683  return Translate;
13684}
13685
13686function Transition (Glide, Components, Events) {
13687  /**
13688   * Holds inactivity status of transition.
13689   * When true transition is not applied.
13690   *
13691   * @type {Boolean}
13692   */
13693  var disabled = false;
13694  var Transition = {
13695    /**
13696     * Composes string of the CSS transition.
13697     *
13698     * @param {String} property
13699     * @return {String}
13700     */
13701    compose: function compose(property) {
13702      var settings = Glide.settings;
13703
13704      if (!disabled) {
13705        return "".concat(property, " ").concat(this.duration, "ms ").concat(settings.animationTimingFunc);
13706      }
13707
13708      return "".concat(property, " 0ms ").concat(settings.animationTimingFunc);
13709    },
13710
13711    /**
13712     * Sets value of transition on HTML element.
13713     *
13714     * @param {String=} property
13715     * @return {Void}
13716     */
13717    set: function set() {
13718      var property = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';
13719      Components.Html.wrapper.style.transition = this.compose(property);
13720    },
13721
13722    /**
13723     * Removes value of transition from HTML element.
13724     *
13725     * @return {Void}
13726     */
13727    remove: function remove() {
13728      Components.Html.wrapper.style.transition = '';
13729    },
13730
13731    /**
13732     * Runs callback after animation.
13733     *
13734     * @param  {Function} callback
13735     * @return {Void}
13736     */
13737    after: function after(callback) {
13738      setTimeout(function () {
13739        callback();
13740      }, this.duration);
13741    },
13742
13743    /**
13744     * Enable transition.
13745     *
13746     * @return {Void}
13747     */
13748    enable: function enable() {
13749      disabled = false;
13750      this.set();
13751    },
13752
13753    /**
13754     * Disable transition.
13755     *
13756     * @return {Void}
13757     */
13758    disable: function disable() {
13759      disabled = true;
13760      this.set();
13761    }
13762  };
13763  define(Transition, 'duration', {
13764    /**
13765     * Gets duration of the transition based
13766     * on currently running animation type.
13767     *
13768     * @return {Number}
13769     */
13770    get: function get() {
13771      var settings = Glide.settings;
13772
13773      if (Glide.isType('slider') && Components.Run.offset) {
13774        return settings.rewindDuration;
13775      }
13776
13777      return settings.animationDuration;
13778    }
13779  });
13780  /**
13781   * Set transition `style` value:
13782   * - on each moving, because it may be cleared by offset move
13783   */
13784
13785  Events.on('move', function () {
13786    Transition.set();
13787  });
13788  /**
13789   * Disable transition:
13790   * - before initial build to avoid transitioning from `0` to `startAt` index
13791   * - while resizing window and recalculating dimensions
13792   * - on jumping from offset transition at start and end edges in `carousel` type
13793   */
13794
13795  Events.on(['build.before', 'resize', 'translate.jump'], function () {
13796    Transition.disable();
13797  });
13798  /**
13799   * Enable transition:
13800   * - on each running, because it may be disabled by offset move
13801   */
13802
13803  Events.on('run', function () {
13804    Transition.enable();
13805  });
13806  /**
13807   * Remove transition:
13808   * - on destroying to bring markup to its inital state
13809   */
13810
13811  Events.on('destroy', function () {
13812    Transition.remove();
13813  });
13814  return Transition;
13815}
13816
13817/**
13818 * Test via a getter in the options object to see
13819 * if the passive property is accessed.
13820 *
13821 * @see https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection
13822 */
13823var supportsPassive = false;
13824
13825try {
13826  var opts = Object.defineProperty({}, 'passive', {
13827    get: function get() {
13828      supportsPassive = true;
13829    }
13830  });
13831  window.addEventListener('testPassive', null, opts);
13832  window.removeEventListener('testPassive', null, opts);
13833} catch (e) {}
13834
13835var supportsPassive$1 = supportsPassive;
13836
13837var START_EVENTS = ['touchstart', 'mousedown'];
13838var MOVE_EVENTS = ['touchmove', 'mousemove'];
13839var END_EVENTS = ['touchend', 'touchcancel', 'mouseup', 'mouseleave'];
13840var MOUSE_EVENTS = ['mousedown', 'mousemove', 'mouseup', 'mouseleave'];
13841function Swipe (Glide, Components, Events) {
13842  /**
13843   * Instance of the binder for DOM Events.
13844   *
13845   * @type {EventsBinder}
13846   */
13847  var Binder = new EventsBinder();
13848  var swipeSin = 0;
13849  var swipeStartX = 0;
13850  var swipeStartY = 0;
13851  var disabled = false;
13852  var capture = supportsPassive$1 ? {
13853    passive: true
13854  } : false;
13855  var Swipe = {
13856    /**
13857     * Initializes swipe bindings.
13858     *
13859     * @return {Void}
13860     */
13861    mount: function mount() {
13862      this.bindSwipeStart();
13863    },
13864
13865    /**
13866     * Handler for `swipestart` event. Calculates entry points of the user's tap.
13867     *
13868     * @param {Object} event
13869     * @return {Void}
13870     */
13871    start: function start(event) {
13872      if (!disabled && !Glide.disabled) {
13873        this.disable();
13874        var swipe = this.touches(event);
13875        swipeSin = null;
13876        swipeStartX = toInt(swipe.pageX);
13877        swipeStartY = toInt(swipe.pageY);
13878        this.bindSwipeMove();
13879        this.bindSwipeEnd();
13880        Events.emit('swipe.start');
13881      }
13882    },
13883
13884    /**
13885     * Handler for `swipemove` event. Calculates user's tap angle and distance.
13886     *
13887     * @param {Object} event
13888     */
13889    move: function move(event) {
13890      if (!Glide.disabled) {
13891        var _Glide$settings = Glide.settings,
13892            touchAngle = _Glide$settings.touchAngle,
13893            touchRatio = _Glide$settings.touchRatio,
13894            classes = _Glide$settings.classes;
13895        var swipe = this.touches(event);
13896        var subExSx = toInt(swipe.pageX) - swipeStartX;
13897        var subEySy = toInt(swipe.pageY) - swipeStartY;
13898        var powEX = Math.abs(subExSx << 2);
13899        var powEY = Math.abs(subEySy << 2);
13900        var swipeHypotenuse = Math.sqrt(powEX + powEY);
13901        var swipeCathetus = Math.sqrt(powEY);
13902        swipeSin = Math.asin(swipeCathetus / swipeHypotenuse);
13903
13904        if (swipeSin * 180 / Math.PI < touchAngle) {
13905          event.stopPropagation();
13906          Components.Move.make(subExSx * toFloat(touchRatio));
13907          Components.Html.root.classList.add(classes.dragging);
13908          Events.emit('swipe.move');
13909        } else {
13910          return false;
13911        }
13912      }
13913    },
13914
13915    /**
13916     * Handler for `swipeend` event. Finitializes user's tap and decides about glide move.
13917     *
13918     * @param {Object} event
13919     * @return {Void}
13920     */
13921    end: function end(event) {
13922      if (!Glide.disabled) {
13923        var _Glide$settings2 = Glide.settings,
13924            perSwipe = _Glide$settings2.perSwipe,
13925            touchAngle = _Glide$settings2.touchAngle,
13926            classes = _Glide$settings2.classes;
13927        var swipe = this.touches(event);
13928        var threshold = this.threshold(event);
13929        var swipeDistance = swipe.pageX - swipeStartX;
13930        var swipeDeg = swipeSin * 180 / Math.PI;
13931        this.enable();
13932
13933        if (swipeDistance > threshold && swipeDeg < touchAngle) {
13934          Components.Run.make(Components.Direction.resolve("".concat(perSwipe, "<")));
13935        } else if (swipeDistance < -threshold && swipeDeg < touchAngle) {
13936          Components.Run.make(Components.Direction.resolve("".concat(perSwipe, ">")));
13937        } else {
13938          // While swipe don't reach distance apply previous transform.
13939          Components.Move.make();
13940        }
13941
13942        Components.Html.root.classList.remove(classes.dragging);
13943        this.unbindSwipeMove();
13944        this.unbindSwipeEnd();
13945        Events.emit('swipe.end');
13946      }
13947    },
13948
13949    /**
13950     * Binds swipe's starting event.
13951     *
13952     * @return {Void}
13953     */
13954    bindSwipeStart: function bindSwipeStart() {
13955      var _this = this;
13956
13957      var _Glide$settings3 = Glide.settings,
13958          swipeThreshold = _Glide$settings3.swipeThreshold,
13959          dragThreshold = _Glide$settings3.dragThreshold;
13960
13961      if (swipeThreshold) {
13962        Binder.on(START_EVENTS[0], Components.Html.wrapper, function (event) {
13963          _this.start(event);
13964        }, capture);
13965      }
13966
13967      if (dragThreshold) {
13968        Binder.on(START_EVENTS[1], Components.Html.wrapper, function (event) {
13969          _this.start(event);
13970        }, capture);
13971      }
13972    },
13973
13974    /**
13975     * Unbinds swipe's starting event.
13976     *
13977     * @return {Void}
13978     */
13979    unbindSwipeStart: function unbindSwipeStart() {
13980      Binder.off(START_EVENTS[0], Components.Html.wrapper, capture);
13981      Binder.off(START_EVENTS[1], Components.Html.wrapper, capture);
13982    },
13983
13984    /**
13985     * Binds swipe's moving event.
13986     *
13987     * @return {Void}
13988     */
13989    bindSwipeMove: function bindSwipeMove() {
13990      var _this2 = this;
13991
13992      Binder.on(MOVE_EVENTS, Components.Html.wrapper, throttle(function (event) {
13993        _this2.move(event);
13994      }, Glide.settings.throttle), capture);
13995    },
13996
13997    /**
13998     * Unbinds swipe's moving event.
13999     *
14000     * @return {Void}
14001     */
14002    unbindSwipeMove: function unbindSwipeMove() {
14003      Binder.off(MOVE_EVENTS, Components.Html.wrapper, capture);
14004    },
14005
14006    /**
14007     * Binds swipe's ending event.
14008     *
14009     * @return {Void}
14010     */
14011    bindSwipeEnd: function bindSwipeEnd() {
14012      var _this3 = this;
14013
14014      Binder.on(END_EVENTS, Components.Html.wrapper, function (event) {
14015        _this3.end(event);
14016      });
14017    },
14018
14019    /**
14020     * Unbinds swipe's ending event.
14021     *
14022     * @return {Void}
14023     */
14024    unbindSwipeEnd: function unbindSwipeEnd() {
14025      Binder.off(END_EVENTS, Components.Html.wrapper);
14026    },
14027
14028    /**
14029     * Normalizes event touches points accorting to different types.
14030     *
14031     * @param {Object} event
14032     */
14033    touches: function touches(event) {
14034      if (MOUSE_EVENTS.indexOf(event.type) > -1) {
14035        return event;
14036      }
14037
14038      return event.touches[0] || event.changedTouches[0];
14039    },
14040
14041    /**
14042     * Gets value of minimum swipe distance settings based on event type.
14043     *
14044     * @return {Number}
14045     */
14046    threshold: function threshold(event) {
14047      var settings = Glide.settings;
14048
14049      if (MOUSE_EVENTS.indexOf(event.type) > -1) {
14050        return settings.dragThreshold;
14051      }
14052
14053      return settings.swipeThreshold;
14054    },
14055
14056    /**
14057     * Enables swipe event.
14058     *
14059     * @return {self}
14060     */
14061    enable: function enable() {
14062      disabled = false;
14063      Components.Transition.enable();
14064      return this;
14065    },
14066
14067    /**
14068     * Disables swipe event.
14069     *
14070     * @return {self}
14071     */
14072    disable: function disable() {
14073      disabled = true;
14074      Components.Transition.disable();
14075      return this;
14076    }
14077  };
14078  /**
14079   * Add component class:
14080   * - after initial building
14081   */
14082
14083  Events.on('build.after', function () {
14084    Components.Html.root.classList.add(Glide.settings.classes.swipeable);
14085  });
14086  /**
14087   * Remove swiping bindings:
14088   * - on destroying, to remove added EventListeners
14089   */
14090
14091  Events.on('destroy', function () {
14092    Swipe.unbindSwipeStart();
14093    Swipe.unbindSwipeMove();
14094    Swipe.unbindSwipeEnd();
14095    Binder.destroy();
14096  });
14097  return Swipe;
14098}
14099
14100function Images (Glide, Components, Events) {
14101  /**
14102   * Instance of the binder for DOM Events.
14103   *
14104   * @type {EventsBinder}
14105   */
14106  var Binder = new EventsBinder();
14107  var Images = {
14108    /**
14109     * Binds listener to glide wrapper.
14110     *
14111     * @return {Void}
14112     */
14113    mount: function mount() {
14114      this.bind();
14115    },
14116
14117    /**
14118     * Binds `dragstart` event on wrapper to prevent dragging images.
14119     *
14120     * @return {Void}
14121     */
14122    bind: function bind() {
14123      Binder.on('dragstart', Components.Html.wrapper, this.dragstart);
14124    },
14125
14126    /**
14127     * Unbinds `dragstart` event on wrapper.
14128     *
14129     * @return {Void}
14130     */
14131    unbind: function unbind() {
14132      Binder.off('dragstart', Components.Html.wrapper);
14133    },
14134
14135    /**
14136     * Event handler. Prevents dragging.
14137     *
14138     * @return {Void}
14139     */
14140    dragstart: function dragstart(event) {
14141      event.preventDefault();
14142    }
14143  };
14144  /**
14145   * Remove bindings from images:
14146   * - on destroying, to remove added EventListeners
14147   */
14148
14149  Events.on('destroy', function () {
14150    Images.unbind();
14151    Binder.destroy();
14152  });
14153  return Images;
14154}
14155
14156function Anchors (Glide, Components, Events) {
14157  /**
14158   * Instance of the binder for DOM Events.
14159   *
14160   * @type {EventsBinder}
14161   */
14162  var Binder = new EventsBinder();
14163  /**
14164   * Holds detaching status of anchors.
14165   * Prevents detaching of already detached anchors.
14166   *
14167   * @private
14168   * @type {Boolean}
14169   */
14170
14171  var detached = false;
14172  /**
14173   * Holds preventing status of anchors.
14174   * If `true` redirection after click will be disabled.
14175   *
14176   * @private
14177   * @type {Boolean}
14178   */
14179
14180  var prevented = false;
14181  var Anchors = {
14182    /**
14183     * Setups a initial state of anchors component.
14184     *
14185     * @returns {Void}
14186     */
14187    mount: function mount() {
14188      /**
14189       * Holds collection of anchors elements.
14190       *
14191       * @private
14192       * @type {HTMLCollection}
14193       */
14194      this._a = Components.Html.wrapper.querySelectorAll('a');
14195      this.bind();
14196    },
14197
14198    /**
14199     * Binds events to anchors inside a track.
14200     *
14201     * @return {Void}
14202     */
14203    bind: function bind() {
14204      Binder.on('click', Components.Html.wrapper, this.click);
14205    },
14206
14207    /**
14208     * Unbinds events attached to anchors inside a track.
14209     *
14210     * @return {Void}
14211     */
14212    unbind: function unbind() {
14213      Binder.off('click', Components.Html.wrapper);
14214    },
14215
14216    /**
14217     * Handler for click event. Prevents clicks when glide is in `prevent` status.
14218     *
14219     * @param  {Object} event
14220     * @return {Void}
14221     */
14222    click: function click(event) {
14223      if (prevented) {
14224        event.stopPropagation();
14225        event.preventDefault();
14226      }
14227    },
14228
14229    /**
14230     * Detaches anchors click event inside glide.
14231     *
14232     * @return {self}
14233     */
14234    detach: function detach() {
14235      prevented = true;
14236
14237      if (!detached) {
14238        for (var i = 0; i < this.items.length; i++) {
14239          this.items[i].draggable = false;
14240        }
14241
14242        detached = true;
14243      }
14244
14245      return this;
14246    },
14247
14248    /**
14249     * Attaches anchors click events inside glide.
14250     *
14251     * @return {self}
14252     */
14253    attach: function attach() {
14254      prevented = false;
14255
14256      if (detached) {
14257        for (var i = 0; i < this.items.length; i++) {
14258          this.items[i].draggable = true;
14259        }
14260
14261        detached = false;
14262      }
14263
14264      return this;
14265    }
14266  };
14267  define(Anchors, 'items', {
14268    /**
14269     * Gets collection of the arrows HTML elements.
14270     *
14271     * @return {HTMLElement[]}
14272     */
14273    get: function get() {
14274      return Anchors._a;
14275    }
14276  });
14277  /**
14278   * Detach anchors inside slides:
14279   * - on swiping, so they won't redirect to its `href` attributes
14280   */
14281
14282  Events.on('swipe.move', function () {
14283    Anchors.detach();
14284  });
14285  /**
14286   * Attach anchors inside slides:
14287   * - after swiping and transitions ends, so they can redirect after click again
14288   */
14289
14290  Events.on('swipe.end', function () {
14291    Components.Transition.after(function () {
14292      Anchors.attach();
14293    });
14294  });
14295  /**
14296   * Unbind anchors inside slides:
14297   * - on destroying, to bring anchors to its initial state
14298   */
14299
14300  Events.on('destroy', function () {
14301    Anchors.attach();
14302    Anchors.unbind();
14303    Binder.destroy();
14304  });
14305  return Anchors;
14306}
14307
14308var NAV_SELECTOR = '[data-glide-el="controls[nav]"]';
14309var CONTROLS_SELECTOR = '[data-glide-el^="controls"]';
14310var PREVIOUS_CONTROLS_SELECTOR = "".concat(CONTROLS_SELECTOR, " [data-glide-dir*=\"<\"]");
14311var NEXT_CONTROLS_SELECTOR = "".concat(CONTROLS_SELECTOR, " [data-glide-dir*=\">\"]");
14312function Controls (Glide, Components, Events) {
14313  /**
14314   * Instance of the binder for DOM Events.
14315   *
14316   * @type {EventsBinder}
14317   */
14318  var Binder = new EventsBinder();
14319  var capture = supportsPassive$1 ? {
14320    passive: true
14321  } : false;
14322  var Controls = {
14323    /**
14324     * Inits arrows. Binds events listeners
14325     * to the arrows HTML elements.
14326     *
14327     * @return {Void}
14328     */
14329    mount: function mount() {
14330      /**
14331       * Collection of navigation HTML elements.
14332       *
14333       * @private
14334       * @type {HTMLCollection}
14335       */
14336      this._n = Components.Html.root.querySelectorAll(NAV_SELECTOR);
14337      /**
14338       * Collection of controls HTML elements.
14339       *
14340       * @private
14341       * @type {HTMLCollection}
14342       */
14343
14344      this._c = Components.Html.root.querySelectorAll(CONTROLS_SELECTOR);
14345      /**
14346       * Collection of arrow control HTML elements.
14347       *
14348       * @private
14349       * @type {Object}
14350       */
14351
14352      this._arrowControls = {
14353        previous: Components.Html.root.querySelectorAll(PREVIOUS_CONTROLS_SELECTOR),
14354        next: Components.Html.root.querySelectorAll(NEXT_CONTROLS_SELECTOR)
14355      };
14356      this.addBindings();
14357    },
14358
14359    /**
14360     * Sets active class to current slide.
14361     *
14362     * @return {Void}
14363     */
14364    setActive: function setActive() {
14365      for (var i = 0; i < this._n.length; i++) {
14366        this.addClass(this._n[i].children);
14367      }
14368    },
14369
14370    /**
14371     * Removes active class to current slide.
14372     *
14373     * @return {Void}
14374     */
14375    removeActive: function removeActive() {
14376      for (var i = 0; i < this._n.length; i++) {
14377        this.removeClass(this._n[i].children);
14378      }
14379    },
14380
14381    /**
14382     * Toggles active class on items inside navigation.
14383     *
14384     * @param  {HTMLElement} controls
14385     * @return {Void}
14386     */
14387    addClass: function addClass(controls) {
14388      var settings = Glide.settings;
14389      var item = controls[Glide.index];
14390
14391      if (!item) {
14392        return;
14393      }
14394
14395      if (item) {
14396        item.classList.add(settings.classes.nav.active);
14397        siblings(item).forEach(function (sibling) {
14398          sibling.classList.remove(settings.classes.nav.active);
14399        });
14400      }
14401    },
14402
14403    /**
14404     * Removes active class from active control.
14405     *
14406     * @param  {HTMLElement} controls
14407     * @return {Void}
14408     */
14409    removeClass: function removeClass(controls) {
14410      var item = controls[Glide.index];
14411
14412      if (item) {
14413        item.classList.remove(Glide.settings.classes.nav.active);
14414      }
14415    },
14416
14417    /**
14418     * Calculates, removes or adds `Glide.settings.classes.disabledArrow` class on the control arrows
14419     */
14420    setArrowState: function setArrowState() {
14421      if (Glide.settings.rewind) {
14422        return;
14423      }
14424
14425      var next = Controls._arrowControls.next;
14426      var previous = Controls._arrowControls.previous;
14427      this.resetArrowState(next, previous);
14428
14429      if (Glide.index === 0) {
14430        this.disableArrow(previous);
14431      }
14432
14433      if (Glide.index === Components.Run.length) {
14434        this.disableArrow(next);
14435      }
14436    },
14437
14438    /**
14439     * Removes `Glide.settings.classes.disabledArrow` from given NodeList elements
14440     *
14441     * @param {NodeList[]} lists
14442     */
14443    resetArrowState: function resetArrowState() {
14444      var settings = Glide.settings;
14445
14446      for (var _len = arguments.length, lists = new Array(_len), _key = 0; _key < _len; _key++) {
14447        lists[_key] = arguments[_key];
14448      }
14449
14450      lists.forEach(function (list) {
14451        toArray(list).forEach(function (element) {
14452          element.classList.remove(settings.classes.arrow.disabled);
14453        });
14454      });
14455    },
14456
14457    /**
14458     * Adds `Glide.settings.classes.disabledArrow` to given NodeList elements
14459     *
14460     * @param {NodeList[]} lists
14461     */
14462    disableArrow: function disableArrow() {
14463      var settings = Glide.settings;
14464
14465      for (var _len2 = arguments.length, lists = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
14466        lists[_key2] = arguments[_key2];
14467      }
14468
14469      lists.forEach(function (list) {
14470        toArray(list).forEach(function (element) {
14471          element.classList.add(settings.classes.arrow.disabled);
14472        });
14473      });
14474    },
14475
14476    /**
14477     * Adds handles to the each group of controls.
14478     *
14479     * @return {Void}
14480     */
14481    addBindings: function addBindings() {
14482      for (var i = 0; i < this._c.length; i++) {
14483        this.bind(this._c[i].children);
14484      }
14485    },
14486
14487    /**
14488     * Removes handles from the each group of controls.
14489     *
14490     * @return {Void}
14491     */
14492    removeBindings: function removeBindings() {
14493      for (var i = 0; i < this._c.length; i++) {
14494        this.unbind(this._c[i].children);
14495      }
14496    },
14497
14498    /**
14499     * Binds events to arrows HTML elements.
14500     *
14501     * @param {HTMLCollection} elements
14502     * @return {Void}
14503     */
14504    bind: function bind(elements) {
14505      for (var i = 0; i < elements.length; i++) {
14506        Binder.on('click', elements[i], this.click);
14507        Binder.on('touchstart', elements[i], this.click, capture);
14508      }
14509    },
14510
14511    /**
14512     * Unbinds events binded to the arrows HTML elements.
14513     *
14514     * @param {HTMLCollection} elements
14515     * @return {Void}
14516     */
14517    unbind: function unbind(elements) {
14518      for (var i = 0; i < elements.length; i++) {
14519        Binder.off(['click', 'touchstart'], elements[i]);
14520      }
14521    },
14522
14523    /**
14524     * Handles `click` event on the arrows HTML elements.
14525     * Moves slider in direction given via the
14526     * `data-glide-dir` attribute.
14527     *
14528     * @param {Object} event
14529     * @return {void}
14530     */
14531    click: function click(event) {
14532      if (!supportsPassive$1 && event.type === 'touchstart') {
14533        event.preventDefault();
14534      }
14535
14536      var direction = event.currentTarget.getAttribute('data-glide-dir');
14537      Components.Run.make(Components.Direction.resolve(direction));
14538    }
14539  };
14540  define(Controls, 'items', {
14541    /**
14542     * Gets collection of the controls HTML elements.
14543     *
14544     * @return {HTMLElement[]}
14545     */
14546    get: function get() {
14547      return Controls._c;
14548    }
14549  });
14550  /**
14551   * Swap active class of current navigation item:
14552   * - after mounting to set it to initial index
14553   * - after each move to the new index
14554   */
14555
14556  Events.on(['mount.after', 'move.after'], function () {
14557    Controls.setActive();
14558  });
14559  /**
14560   * Add or remove disabled class of arrow elements
14561   */
14562
14563  Events.on(['mount.after', 'run'], function () {
14564    Controls.setArrowState();
14565  });
14566  /**
14567   * Remove bindings and HTML Classes:
14568   * - on destroying, to bring markup to its initial state
14569   */
14570
14571  Events.on('destroy', function () {
14572    Controls.removeBindings();
14573    Controls.removeActive();
14574    Binder.destroy();
14575  });
14576  return Controls;
14577}
14578
14579function Keyboard (Glide, Components, Events) {
14580  /**
14581   * Instance of the binder for DOM Events.
14582   *
14583   * @type {EventsBinder}
14584   */
14585  var Binder = new EventsBinder();
14586  var Keyboard = {
14587    /**
14588     * Binds keyboard events on component mount.
14589     *
14590     * @return {Void}
14591     */
14592    mount: function mount() {
14593      if (Glide.settings.keyboard) {
14594        this.bind();
14595      }
14596    },
14597
14598    /**
14599     * Adds keyboard press events.
14600     *
14601     * @return {Void}
14602     */
14603    bind: function bind() {
14604      Binder.on('keyup', document, this.press);
14605    },
14606
14607    /**
14608     * Removes keyboard press events.
14609     *
14610     * @return {Void}
14611     */
14612    unbind: function unbind() {
14613      Binder.off('keyup', document);
14614    },
14615
14616    /**
14617     * Handles keyboard's arrows press and moving glide foward and backward.
14618     *
14619     * @param  {Object} event
14620     * @return {Void}
14621     */
14622    press: function press(event) {
14623      var perSwipe = Glide.settings.perSwipe;
14624
14625      if (event.code === 'ArrowRight') {
14626        Components.Run.make(Components.Direction.resolve("".concat(perSwipe, ">")));
14627      }
14628
14629      if (event.code === 'ArrowLeft') {
14630        Components.Run.make(Components.Direction.resolve("".concat(perSwipe, "<")));
14631      }
14632    }
14633  };
14634  /**
14635   * Remove bindings from keyboard:
14636   * - on destroying to remove added events
14637   * - on updating to remove events before remounting
14638   */
14639
14640  Events.on(['destroy', 'update'], function () {
14641    Keyboard.unbind();
14642  });
14643  /**
14644   * Remount component
14645   * - on updating to reflect potential changes in settings
14646   */
14647
14648  Events.on('update', function () {
14649    Keyboard.mount();
14650  });
14651  /**
14652   * Destroy binder:
14653   * - on destroying to remove listeners
14654   */
14655
14656  Events.on('destroy', function () {
14657    Binder.destroy();
14658  });
14659  return Keyboard;
14660}
14661
14662function Autoplay (Glide, Components, Events) {
14663  /**
14664   * Instance of the binder for DOM Events.
14665   *
14666   * @type {EventsBinder}
14667   */
14668  var Binder = new EventsBinder();
14669  var Autoplay = {
14670    /**
14671     * Initializes autoplaying and events.
14672     *
14673     * @return {Void}
14674     */
14675    mount: function mount() {
14676      this.enable();
14677      this.start();
14678
14679      if (Glide.settings.hoverpause) {
14680        this.bind();
14681      }
14682    },
14683
14684    /**
14685     * Enables autoplaying
14686     *
14687     * @returns {Void}
14688     */
14689    enable: function enable() {
14690      this._e = true;
14691    },
14692
14693    /**
14694     * Disables autoplaying.
14695     *
14696     * @returns {Void}
14697     */
14698    disable: function disable() {
14699      this._e = false;
14700    },
14701
14702    /**
14703     * Starts autoplaying in configured interval.
14704     *
14705     * @param {Boolean|Number} force Run autoplaying with passed interval regardless of `autoplay` settings
14706     * @return {Void}
14707     */
14708    start: function start() {
14709      var _this = this;
14710
14711      if (!this._e) {
14712        return;
14713      }
14714
14715      this.enable();
14716
14717      if (Glide.settings.autoplay) {
14718        if (isUndefined(this._i)) {
14719          this._i = setInterval(function () {
14720            _this.stop();
14721
14722            Components.Run.make('>');
14723
14724            _this.start();
14725
14726            Events.emit('autoplay');
14727          }, this.time);
14728        }
14729      }
14730    },
14731
14732    /**
14733     * Stops autorunning of the glide.
14734     *
14735     * @return {Void}
14736     */
14737    stop: function stop() {
14738      this._i = clearInterval(this._i);
14739    },
14740
14741    /**
14742     * Stops autoplaying while mouse is over glide's area.
14743     *
14744     * @return {Void}
14745     */
14746    bind: function bind() {
14747      var _this2 = this;
14748
14749      Binder.on('mouseover', Components.Html.root, function () {
14750        if (_this2._e) {
14751          _this2.stop();
14752        }
14753      });
14754      Binder.on('mouseout', Components.Html.root, function () {
14755        if (_this2._e) {
14756          _this2.start();
14757        }
14758      });
14759    },
14760
14761    /**
14762     * Unbind mouseover events.
14763     *
14764     * @returns {Void}
14765     */
14766    unbind: function unbind() {
14767      Binder.off(['mouseover', 'mouseout'], Components.Html.root);
14768    }
14769  };
14770  define(Autoplay, 'time', {
14771    /**
14772     * Gets time period value for the autoplay interval. Prioritizes
14773     * times in `data-glide-autoplay` attrubutes over options.
14774     *
14775     * @return {Number}
14776     */
14777    get: function get() {
14778      var autoplay = Components.Html.slides[Glide.index].getAttribute('data-glide-autoplay');
14779
14780      if (autoplay) {
14781        return toInt(autoplay);
14782      }
14783
14784      return toInt(Glide.settings.autoplay);
14785    }
14786  });
14787  /**
14788   * Stop autoplaying and unbind events:
14789   * - on destroying, to clear defined interval
14790   * - on updating via API to reset interval that may changed
14791   */
14792
14793  Events.on(['destroy', 'update'], function () {
14794    Autoplay.unbind();
14795  });
14796  /**
14797   * Stop autoplaying:
14798   * - before each run, to restart autoplaying
14799   * - on pausing via API
14800   * - on destroying, to clear defined interval
14801   * - while starting a swipe
14802   * - on updating via API to reset interval that may changed
14803   */
14804
14805  Events.on(['run.before', 'swipe.start', 'update'], function () {
14806    Autoplay.stop();
14807  });
14808  Events.on(['pause', 'destroy'], function () {
14809    Autoplay.disable();
14810    Autoplay.stop();
14811  });
14812  /**
14813   * Start autoplaying:
14814   * - after each run, to restart autoplaying
14815   * - on playing via API
14816   * - while ending a swipe
14817   */
14818
14819  Events.on(['run.after', 'swipe.end'], function () {
14820    Autoplay.start();
14821  });
14822  /**
14823   * Start autoplaying:
14824   * - after each run, to restart autoplaying
14825   * - on playing via API
14826   * - while ending a swipe
14827   */
14828
14829  Events.on(['play'], function () {
14830    Autoplay.enable();
14831    Autoplay.start();
14832  });
14833  /**
14834   * Remount autoplaying:
14835   * - on updating via API to reset interval that may changed
14836   */
14837
14838  Events.on('update', function () {
14839    Autoplay.mount();
14840  });
14841  /**
14842   * Destroy a binder:
14843   * - on destroying glide instance to clearup listeners
14844   */
14845
14846  Events.on('destroy', function () {
14847    Binder.destroy();
14848  });
14849  return Autoplay;
14850}
14851
14852/**
14853 * Sorts keys of breakpoint object so they will be ordered from lower to bigger.
14854 *
14855 * @param {Object} points
14856 * @returns {Object}
14857 */
14858
14859function sortBreakpoints(points) {
14860  if (isObject(points)) {
14861    return sortKeys(points);
14862  } else {
14863    warn("Breakpoints option must be an object");
14864  }
14865
14866  return {};
14867}
14868
14869function Breakpoints (Glide, Components, Events) {
14870  /**
14871   * Instance of the binder for DOM Events.
14872   *
14873   * @type {EventsBinder}
14874   */
14875  var Binder = new EventsBinder();
14876  /**
14877   * Holds reference to settings.
14878   *
14879   * @type {Object}
14880   */
14881
14882  var settings = Glide.settings;
14883  /**
14884   * Holds reference to breakpoints object in settings. Sorts breakpoints
14885   * from smaller to larger. It is required in order to proper
14886   * matching currently active breakpoint settings.
14887   *
14888   * @type {Object}
14889   */
14890
14891  var points = sortBreakpoints(settings.breakpoints);
14892  /**
14893   * Cache initial settings before overwritting.
14894   *
14895   * @type {Object}
14896   */
14897
14898  var defaults = Object.assign({}, settings);
14899  var Breakpoints = {
14900    /**
14901     * Matches settings for currectly matching media breakpoint.
14902     *
14903     * @param {Object} points
14904     * @returns {Object}
14905     */
14906    match: function match(points) {
14907      if (typeof window.matchMedia !== 'undefined') {
14908        for (var point in points) {
14909          if (points.hasOwnProperty(point)) {
14910            if (window.matchMedia("(max-width: ".concat(point, "px)")).matches) {
14911              return points[point];
14912            }
14913          }
14914        }
14915      }
14916
14917      return defaults;
14918    }
14919  };
14920  /**
14921   * Overwrite instance settings with currently matching breakpoint settings.
14922   * This happens right after component initialization.
14923   */
14924
14925  Object.assign(settings, Breakpoints.match(points));
14926  /**
14927   * Update glide with settings of matched brekpoint:
14928   * - window resize to update slider
14929   */
14930
14931  Binder.on('resize', window, throttle(function () {
14932    Glide.settings = mergeOptions(settings, Breakpoints.match(points));
14933  }, Glide.settings.throttle));
14934  /**
14935   * Resort and update default settings:
14936   * - on reinit via API, so breakpoint matching will be performed with options
14937   */
14938
14939  Events.on('update', function () {
14940    points = sortBreakpoints(points);
14941    defaults = Object.assign({}, settings);
14942  });
14943  /**
14944   * Unbind resize listener:
14945   * - on destroying, to bring markup to its initial state
14946   */
14947
14948  Events.on('destroy', function () {
14949    Binder.off('resize', window);
14950  });
14951  return Breakpoints;
14952}
14953
14954var COMPONENTS = {
14955  // Required
14956  Html: Html,
14957  Translate: Translate,
14958  Transition: Transition,
14959  Direction: Direction,
14960  Peek: Peek,
14961  Sizes: Sizes,
14962  Gaps: Gaps,
14963  Move: Move,
14964  Clones: Clones,
14965  Resize: Resize,
14966  Build: Build,
14967  Run: Run,
14968  // Optional
14969  Swipe: Swipe,
14970  Images: Images,
14971  Anchors: Anchors,
14972  Controls: Controls,
14973  Keyboard: Keyboard,
14974  Autoplay: Autoplay,
14975  Breakpoints: Breakpoints
14976};
14977
14978var Glide = /*#__PURE__*/function (_Core) {
14979  _inherits(Glide, _Core);
14980
14981  var _super = _createSuper(Glide);
14982
14983  function Glide() {
14984    _classCallCheck(this, Glide);
14985
14986    return _super.apply(this, arguments);
14987  }
14988
14989  _createClass(Glide, [{
14990    key: "mount",
14991    value: function mount() {
14992      var extensions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
14993      return _get(_getPrototypeOf(Glide.prototype), "mount", this).call(this, Object.assign({}, COMPONENTS, extensions));
14994    }
14995  }]);
14996
14997  return Glide;
14998}(Glide$1);
14999
15000
15001
15002
15003/***/ })
vendor: 4,663 bytes, lines 15003-15113
15003
15004
15005/******/ 	});
15006/************************************************************************/
15007/******/ 	// The module cache
15008/******/ 	var __webpack_module_cache__ = {};
15009/******/ 	
15010/******/ 	// The require function
15011/******/ 	function __webpack_require__(moduleId) {
15012/******/ 		// Check if module is in cache
15013/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
15014/******/ 		if (cachedModule !== undefined) {
15015/******/ 			return cachedModule.exports;
15016/******/ 		}
15017/******/ 		// Create a new module (and put it into the cache)
15018/******/ 		var module = __webpack_module_cache__[moduleId] = {
15019/******/ 			id: moduleId,
15020/******/ 			// no module.loaded needed
15021/******/ 			exports: {}
15022/******/ 		};
15023/******/ 	
15024/******/ 		// Execute the module function
15025/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
15026/******/ 	
15027/******/ 		// Return the exports of the module
15028/******/ 		return module.exports;
15029/******/ 	}
15030/******/ 	
15031/******/ 	// expose the modules object (__webpack_modules__)
15032/******/ 	__webpack_require__.m = __webpack_modules__;
15033/******/ 	
15034/************************************************************************/
15035/******/ 	/* webpack/runtime/compat get default export */
15036/******/ 	(() => {
15037/******/ 		// getDefaultExport function for compatibility with non-harmony modules
15038/******/ 		__webpack_require__.n = (module) => {
15039/******/ 			var getter = module && module.__esModule ?
15040/******/ 				() => (module['default']) :
15041/******/ 				() => (module);
15042/******/ 			__webpack_require__.d(getter, { a: getter });
15043/******/ 			return getter;
15044/******/ 		};
15045/******/ 	})();
15046/******/ 	
15047/******/ 	/* webpack/runtime/define property getters */
15048/******/ 	(() => {
15049/******/ 		// define getter functions for harmony exports
15050/******/ 		__webpack_require__.d = (exports, definition) => {
15051/******/ 			for(var key in definition) {
15052/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
15053/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
15054/******/ 				}
15055/******/ 			}
15056/******/ 		};
15057/******/ 	})();
15058/******/ 	
15059/******/ 	/* webpack/runtime/global */
15060/******/ 	(() => {
15061/******/ 		__webpack_require__.g = (function() {
15062/******/ 			if (typeof globalThis === 'object') return globalThis;
15063/******/ 			try {
15064/******/ 				return this || new Function('return this')();
15065/******/ 			} catch (e) {
15066/******/ 				if (typeof window === 'object') return window;
15067/******/ 			}
15068/******/ 		})();
15069/******/ 	})();
15070/******/ 	
15071/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
15072/******/ 	(() => {
15073/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
15074/******/ 	})();
15075/******/ 	
15076/******/ 	/* webpack/runtime/make namespace object */
15077/******/ 	(() => {
15078/******/ 		// define __esModule on exports
15079/******/ 		__webpack_require__.r = (exports) => {
15080/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
15081/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
15082/******/ 			}
15083/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
15084/******/ 		};
15085/******/ 	})();
15086/******/ 	
15087/******/ 	/* webpack/runtime/publicPath */
15088/******/ 	(() => {
15089/******/ 		var scriptUrl;
15090/******/ 		if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + "";
15091/******/ 		var document = __webpack_require__.g.document;
15092/******/ 		if (!scriptUrl && document) {
15093/******/ 			if (document.currentScript)
15094/******/ 				scriptUrl = document.currentScript.src
15095/******/ 			if (!scriptUrl) {
15096/******/ 				var scripts = document.getElementsByTagName("script");
15097/******/ 				if(scripts.length) scriptUrl = scripts[scripts.length - 1].src
15098/******/ 			}
15099/******/ 		}
15100/******/ 		// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration
15101/******/ 		// or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic.
15102/******/ 		if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser");
15103/******/ 		scriptUrl = scriptUrl.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/");
15104/******/ 		__webpack_require__.p = scriptUrl;
15105/******/ 	})();
15106/******/ 	
15107/******/ 	/* webpack/runtime/jsonp chunk loading */
15108/******/ 	(() => {
15109/******/ 		__webpack_require__.b = document.baseURI || self.location.href;
15110/******/ 		
15111/******/ 		// object to store loaded and loading chunks
15112/******/ 		// undefined = chunk not loaded, null = chunk preloaded/prefetched
15113/******/ 		// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded
15114/******/ 		var installedChunks = {
15115/******/ 			"main": 0
15116/******/ 		};
15117/******/ 		
15118/******/ 		// no chunk on demand loading
15119/******/ 		
15120/******/ 		// no prefetching
15121/******/ 		
15122/******/ 		// no preloaded
15123/******/ 		
15124/******/ 		// no HMR
15125/******/ 		
15126/******/ 		// no HMR manifest
15127/******/ 		
15128/******/ 		// no on chunks loaded
15129/******/ 		
15130/******/ 		// no jsonp function
15131/******/ 	})();
15132/******/ 	
15133/******/ 	/* webpack/runtime/nonce */
15134/******/ 	(() => {
15135/******/ 		__webpack_require__.nc = undefined;
15136/******/ 	})();
15137/******/ 	
15138/************************************************************************/
15139var __webpack_exports__ = {};
15140// This entry need to be wrapped in an IIFE because it need to be in strict mode.
15141(() => {
15142"use strict";
15143/*!***************************!*\
15144  !*** ./assets/js/main.js ***!
15145  \***************************/
15146__webpack_require__.r(__webpack_exports__);
15147/* harmony import */ var _css_main_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../css/main.css */ "./assets/css/main.css");
15148/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./abstract/helpers.js */ "./assets/js/abstract/helpers.js");
15149/* harmony import */ var _components_responsive_menu_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/responsive-menu.js */ "./assets/js/components/responsive-menu.js");
15150/* harmony import */ var _components_glide_slider_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/glide-slider.js */ "./assets/js/components/glide-slider.js");
15151/* harmony import */ var _components_custom_select_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/custom-select.js */ "./assets/js/components/custom-select.js");
15152/* harmony import */ var _archives_replace_page_content__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./archives/replace-page-content */ "./assets/js/archives/replace-page-content.js");
15153/* harmony import */ var _components_notifications_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./components/notifications.js */ "./assets/js/components/notifications.js");
15154/* harmony import */ var _components_follow_menu_style_1_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./components/follow-menu-style-1.js */ "./assets/js/components/follow-menu-style-1.js");
15155/* harmony import */ var _components_hover_popups_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./components/hover-popups.js */ "./assets/js/components/hover-popups.js");
15156/* harmony import */ var _components_search_popups_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./components/search-popups.js */ "./assets/js/components/search-popups.js");
15157/* harmony import */ var _components_select_menu_style_1_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./components/select-menu-style-1.js */ "./assets/js/components/select-menu-style-1.js");
15158/* harmony import */ var _components_funding_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./components/funding.js */ "./assets/js/components/funding.js");
15159/* harmony import */ var _components_popup_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./components/popup.js */ "./assets/js/components/popup.js");
15160/* harmony import */ var _components_faq_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./components/faq.js */ "./assets/js/components/faq.js");
15161/* harmony import */ var _components_impact_slider_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./components/impact-slider.js */ "./assets/js/components/impact-slider.js");
15162/* harmony import */ var _components_header_slider_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./components/header-slider.js */ "./assets/js/components/header-slider.js");
15163/* harmony import */ var _components_form_reset_button_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./components/form-reset-button.js */ "./assets/js/components/form-reset-button.js");
15164/* harmony import */ var _components_menu_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./components/menu.js */ "./assets/js/components/menu.js");
15165/* harmony import */ var _components_location_map_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./components/location-map.js */ "./assets/js/components/location-map.js");
15166/* harmony import */ var _components_scroll_class_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./components/scroll-class.js */ "./assets/js/components/scroll-class.js");
15167/* harmony import */ var _components_open_login_popup_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./components/open-login-popup.js */ "./assets/js/components/open-login-popup.js");
15168/* harmony import */ var _components_introduction_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./components/introduction.js */ "./assets/js/components/introduction.js");
15169function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
15170
15171function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
15172
15173function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
15174
15175
15176
15177
15178
15179
15180
15181
15182
15183
15184
15185
15186
15187
15188
15189
15190
15191
15192
15193
15194
15195
15196
15197(0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_1__.pageReady)(function () {
15198  var Init = /*#__PURE__*/_createClass(function Init() {
15199    _classCallCheck(this, Init);
15200
15201    //responsive menu class toggle
15202    new _components_responsive_menu_js__WEBPACK_IMPORTED_MODULE_2__.ResponsiveMenu();
15203    new _components_notifications_js__WEBPACK_IMPORTED_MODULE_6__.Notifications();
15204    new _components_custom_select_js__WEBPACK_IMPORTED_MODULE_4__.CustomSelect();
15205    new _archives_replace_page_content__WEBPACK_IMPORTED_MODULE_5__.ReplacePageContent();
15206    new _components_hover_popups_js__WEBPACK_IMPORTED_MODULE_8__.HoverPopups();
15207    new _components_follow_menu_style_1_js__WEBPACK_IMPORTED_MODULE_7__.FollowMenu();
15208    new _components_select_menu_style_1_js__WEBPACK_IMPORTED_MODULE_10__.SelectMenu();
15209    new _components_funding_js__WEBPACK_IMPORTED_MODULE_11__.Funding();
15210    new _components_impact_slider_js__WEBPACK_IMPORTED_MODULE_14__.ImpactSlider();
15211    new _components_faq_js__WEBPACK_IMPORTED_MODULE_13__.FAQ();
15212    new _components_header_slider_js__WEBPACK_IMPORTED_MODULE_15__.HeaderSlider();
15213    new _components_menu_js__WEBPACK_IMPORTED_MODULE_17__.Menu();
15214    new _components_search_popups_js__WEBPACK_IMPORTED_MODULE_9__.SearchPopup();
15215    new _components_form_reset_button_js__WEBPACK_IMPORTED_MODULE_16__.FormResetButton();
15216    new _components_popup_js__WEBPACK_IMPORTED_MODULE_12__.Popup();
15217    new _components_location_map_js__WEBPACK_IMPORTED_MODULE_18__.LocationMap();
15218    new _components_open_login_popup_js__WEBPACK_IMPORTED_MODULE_20__.OpenLoginPopup();
15219    new _components_scroll_class_js__WEBPACK_IMPORTED_MODULE_19__.ScrollClass();
15220    new _components_introduction_js__WEBPACK_IMPORTED_MODULE_21__.Introduction();
15221    new _components_glide_slider_js__WEBPACK_IMPORTED_MODULE_3__.GlideSlider('.hero-glide', {
15222      type: 'carousel',
15223      perView: 1,
15224      autoplay: 2500,
15225      hoverpause: true
15226    });
15227
15228    if (window.matchMedia("screen and (min-width: 640px)").matches) {
15229      new _components_glide_slider_js__WEBPACK_IMPORTED_MODULE_3__.GlideSlider('.event-glide', {
15230        type: 'carousel',
15231        perView: 3,
15232        breakpoints: {
15233          1024: {
15234            perView: 2
15235          },
15236          600: {
15237            perView: 1
15238          }
15239        },
15240        autoplay: 4000,
15241        gap: 24
15242      });
15243    }
15244
15245    (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_1__.inViewport)('.animated-circle', function (e) {
15246      if (e) {
15247        document.querySelector('.animated-circle').classList.add('start');
15248      }
15249    });
15250    (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_1__.inViewport)('.animated-circle-2', function (e) {
15251      if (e) {
15252        document.querySelector('.animated-circle-2').classList.add('start');
15253      }
15254    });
15255    (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_1__.inViewport)('.animated-circle-3', function (e) {
15256      if (e) {
15257        document.querySelector('.animated-circle-3').classList.add('start');
15258      }
15259    });
15260    (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_1__.inViewport)('.animated-circle-4', function (e) {
15261      if (e) {
15262        document.querySelector('.animated-circle-4').classList.add('start');
15263      }
15264    });
15265    (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_1__.inViewport)('.animated-circle-5', function (e) {
15266      if (e) {
15267        document.querySelector('.animated-circle-5').classList.add('start');
15268      }
15269    });
15270    (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_1__.inViewport)('.animated-oval', function (e) {
15271      if (e) {
15272        document.querySelector('.animated-oval').classList.add('start');
15273      }
15274    });
15275    (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_1__.onClick)(document.querySelector('#copy'), function (e) {
15276      if (e) {
15277        e.preventDefault();
15278        var dummy = document.createElement('input'),
15279            text = window.location.href;
15280        document.body.appendChild(dummy);
15281        dummy.value = text;
15282        dummy.select();
15283        document.execCommand('copy');
15284        document.body.removeChild(dummy);
15285        document.querySelector('#copy span').innerHTML = 'Copied!';
15286      }
15287    });
15288    document.querySelector("body").classList.remove("no-transition");
15289  });
15290
15291  new Init();
15292});
15293})();
15294
15295/******/ })()
15296;
15297//# sourceMappingURL=main.bundle.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.